¿Cuál es la mejor forma de generar páginas html a partir de los datos a la vista? Tengo una plantilla html con todas las tablas, etc. No quiero usar plantillas como JqueryTemplate.Devolver documento PDF de Asp.net controlador MVC
Respuesta
Basta con crear el lado del servidor de PDF y devolver el archivo en lugar de la vista html. Ni qué tipo de proveedor de PDF no se utiliza, pero esto una solución para iTextSharp:
Bueno, me encasillaste. Vamos a empezar desde el principio. ¿Cuál es tu verdadero caso? ¿Qué quieres hacer? Hay muchos diferentes enviar cualquier tipo de datos desde el controlador a la página html con o sin controlador –
probar este enfoque mediante el hiqpdf html to pdf converter, un producto comercial:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
Session["MySessionVariable"] = "My Session Variable Value assigned in Index";
return View();
}
public ActionResult About()
{
return View();
}
public string RenderViewAsString(string viewName, object model)
{
// create a string writer to receive the HTML code
StringWriter stringWriter = new StringWriter();
// get the view to render
ViewEngineResult viewResult = ViewEngines.Engines.FindView(ControllerContext, viewName, null);
// create a context to render a view based on a model
ViewContext viewContext = new ViewContext(
ControllerContext,
viewResult.View,
new ViewDataDictionary(model),
new TempDataDictionary(),
stringWriter
);
// render the view to a HTML code
viewResult.View.Render(viewContext, stringWriter);
// return the HTML code
return stringWriter.ToString();
}
[HttpPost]
public ActionResult ConvertThisPageToPdf()
{
// get the HTML code of this view
string htmlToConvert = RenderViewAsString("Index", null);
// the base URL to resolve relative images and css
String thisPageUrl = this.ControllerContext.HttpContext.Request.Url.AbsoluteUri;
String baseUrl = thisPageUrl.Substring(0, thisPageUrl.Length - "Home/ConvertThisPageToPdf".Length);
// instantiate the HiQPdf HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// hide the button in the created PDF
htmlToPdfConverter.HiddenHtmlElements = new string[] { "#convertThisPageButtonDiv" };
// render the HTML code as PDF in memory
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUrl);
// send the PDF file to browser
FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
fileResult.FileDownloadName = "ThisMvcViewToPdf.pdf";
return fileResult;
}
[HttpPost]
public ActionResult ConvertAboutPageToPdf()
{
// get the About view HTML code
string htmlToConvert = RenderViewAsString("About", null);
// the base URL to resolve relative images and css
String thisPageUrl = this.ControllerContext.HttpContext.Request.Url.AbsoluteUri;
String baseUrl = thisPageUrl.Substring(0, thisPageUrl.Length - "Home/ConvertAboutPageToPdf".Length);
// instantiate the HiQPdf HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// render the HTML code as PDF in memory
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUrl);
// send the PDF file to browser
FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
fileResult.FileDownloadName = "AboutMvcViewToPdf.pdf";
return fileResult;
}
}
Fuente de este código de ejemplo: How to convert HTML to PDF using HiQPDF
estaba buscando mostrando el archivo pdf durante 3 días. Pero esta solución es mejor. Gracias – MustafaP
- 1. devolver un archivo js del controlador de asp.net mvc
- 2. ASP.NET MVC JsonResult devolver 500
- 3. ASP.NET MVC: Controlador simulado.Url.Action
- 4. asp.net controlador genérico mvc
- 5. ruta ASP.NET MVC devolver 404 sin acción
- 6. En ASP.NET MVC, Cómo devolver un documento xml a una Vista
- 7. cómo devolver JSON con controlador MVC
- 8. Devolver diferentes vistas desde el controlador MVC
- 9. Devolver 307 redireccionamiento temporal en ASP.NET MVC
- 10. ASP.NET MVC Controlador Dependencias (StructureMap)
- 11. Contexto del controlador Asp.net-mvc burlón
- 12. ¿Documento HTML a PDF?
- 13. ASP.NET MVC: devolver grandes cantidades de datos de FileResult
- 14. jQuery $ (documento) .ready y ASP.NET MVC Partial
- 15. ASP.NET MVC no sirve el documento predeterminado
- 16. Generar archivos PDF desde asp.net mvc
- 17. Diseño de acciones del controlador ASP.NET MVC
- 18. ASP.Net MVC: Envío de JSON al controlador
- 19. Ciclo de vida del controlador ASP.NET MVC
- 20. ASP.net MVC controlador de ruta personalizada/restricción
- 21. Deshabilitar condicionalmente el controlador MVC de ASP.NET
- 22. Devolver JSON desde un método JsonResult en el controlador MVC
- 23. ASP.NET MVC: devolver el archivo de texto sin formato para descargar desde el método de controlador
- 24. ¿Cómo debo devolver una imagen de una acción del controlador C# asp.net-mvc-2?
- 25. Cómo devolver JSON desde el controlador de MVC WEB API
- 26. Cómo devolver el error de la acción MVC de ASP.NET
- 27. gama Javascript para ASP.NET MVC controlador
- 28. Redirigir controlador autorizado en ASP.NET MVC
- 29. pase el diccionario al controlador asp.net mvc
- 30. ASP.NET MVC - pasar parámetros al controlador
¿Por qué no quieres usar build en mvc synrax razor? O tienes que hacerlo al lado del cliente? –
¿por qué necesita hacerlo del lado del cliente? ¿Por qué no generar el lado del servidor PDF y devolver el pdf listo como bytes? –