Hola, en este post te muestro como convertir tus vistas HTML a PDF con una herramienta bastante útil, la cual fue desarrollada para tecnología .NET.
Actualmente existen muchas formas de crear reportes pdf en .NET, pero para mi la mejor opción es convertir mis paginas web en HTML, ya que tienes una mejor presentación ya que se muestra tal cual tu lo diseñas.
Por eso es que he decidido compartir esta excelente herramienta, que nos permite exportar nuestras vistas de ASP.NET MVC en un archivo PDF, su nombre; Rotativa.
Requisitos
b) Una buena computadora
c) y Mucha creatividad.
Paso 1. Aplicación
Necesitamos Crear una aplicación Web en ASP.NET MVC
Paso 2. Crear la vista que vamos a exportar a PDF
En este ejemplo voy a tomar el mismo controller Home y la vista Index, el cual ya me muestra un texto de introducción:
Paso 3. Agregamos Rotativa al proyecto desde Nuget
a) Ya sea por consola, aquí te dejo la URL
b) Agregándolo directamente desde el administrador de complementos Nuget de tu aplicación en Visual Studio:
Paso 4. Creamos el una función que devuelve el PDF
Esta función será capaz de especificar cual es el ActionResult para convertir en PDF. queda así:
public void PDFIndex() { //Especificamos el ActionResult de donde vamos a jalar el HTML MVC.ActionAsPdf oReporte = new MVC.ActionAsPdf("Index"); //Especificamos una ruta virtual para guardar temporalmente el PDF oReporte.FileName = HostingEnvironment.ApplicationPhysicalPath + "/Content/Ejemplo.pdf"; //Convertimos el byte[] oArray = oReporte.BuildPdf(ControllerContext); //Creamos el responde para retornar el PDF Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; Response.ContentType = "application/pdf"; Response.AddHeader("Ejemplo", "bytes"); Response.BinaryWrite(oArray); Response.End(); Response.Flush(); }
En la siguiente URL te dejo el repositorio para que puedas bajar el ejemplo:
Tags:
Convertir HTML a PDF con Rotativa
Convertir HTML a PDF en MVC
Convertir HTMLa PDF
ConvertirPDF a PDF con MVC .NET
cshtml to PDF
HTML to PDF
Rotativa