Cómo convertir vistas a PDF en ASP.NET MVC con C
IronPDF te permite convertir Vistas ASP.NET MVC a documentos PDF usando el método ChromePdfRenderer.RenderView() con solo unas pocas líneas de código. El paquete IronPdf.Extensions.Mvc.Framework proporciona una integración perfecta con proyectos ASP.NET MVC para renderizar vistas CSHTML como PDFs.
Una Vista es un componente en el marco de ASP.NET utilizado para generar marcado HTML en aplicaciones web. Forma parte del patrón Modelo-Vista-Controlador (MVC), utilizado habitualmente en aplicaciones ASP.NET MVC y ASP.NET Core MVC. Las Vistas son responsables de presentar datos al usuario renderizando contenido HTML dinámicamente. La potencia de Chrome PDF Rendering Engine de IronPDF garantiza que sus vistas se rendericen con una precisión de píxel perfecta, manteniendo todos los estilos, diseños y elementos interactivos.
ASP.NET Web Application (.NET Framework) MVC es un marco de aplicación web proporcionado por Microsoft. Sigue un patrón arquitectónico estructurado conocido como Modelo-Vista-Controlador (MVC) para organizar y agilizar el desarrollo de aplicaciones web.
- Modelo: Gestiona datos, lógica de negocio e integridad de datos.
- Vista: Presenta la interfaz de usuario y renderiza información.
- Controlador: gestiona las entradas de los usuarios, procesa las solicitudes y organiza las interacciones entre el modelo y la vista.
IronPDF simplifica el proceso de creación de archivos PDF a partir de Vistas dentro de un proyecto ASP.NET MVC. Esto hace que la generación de PDF sea fácil y directa en ASP.NET MVC. Ya sea que esté generando facturas, informes o cualquier documento desde sus vistas web, IronPDF proporciona las herramientas necesarias para una salida PDF profesional. Para obtener una guía de instalación completa, visite la página Installation Overview.
En España, muchos sistemas empresariales de facturación electrónica —incluyendo portales de cumplimiento VeriFactu, aplicaciones de envío a FACe y sistemas de gestión documental para la AEAT— aún se ejecutan sobre ASP.NET MVC Framework (.NET 4.x). IronPDF permite a estos sistemas heredados generar PDFs de facturas conformes con Facturae directamente desde sus Vistas existentes, facilitando la transición hacia la obligatoriedad de la factura electrónica impuesta por la Ley Crea y Crece sin necesidad de reescribir completamente la aplicación.
Inicio rápido: Convierta la vista ASP.NET MVC a PDF sin esfuerzo
Aprende cómo convertir rápidamente tus Vistas de ASP.NET MVC en documentos PDF usando IronPDF. Con solo unas pocas líneas de código, puedes renderizar tus vistas CSHTML a PDFs de alta calidad, mejorando la funcionalidad de tu aplicación. IronPDF simplifica el proceso, haciéndolo accesible para desarrolladores de todos los niveles. Comienza integrando IronPDF en tus proyectos ASP.NET Core para generar PDFs fácilmente desde tus Vistas.
-
Instala IronPDF con el Administrador de Paquetes NuGet
PM > Install-Package IronPdf -
Copie y ejecute este fragmento de código.
// Install-Package IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext); -
Despliegue para probar en su entorno real
Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargue la biblioteca C# para convertir vistas en archivos PDF en ASP.NET MVC
- Agregar una clase de modelo para los datos.
- Cree una acción "Persona" en el controlador y utilice el método
RenderView - Agregar una vista usando la vista Scaffolded de MVC 5
- Descarga el proyecto de ejemplo para un inicio rápido.
¿Qué paquete de extensión necesito?
¿Por qué IronPDF requiere un paquete de extensión?
El paquete IronPdf.Extensions.Mvc.Framework es una extensión del paquete principal IronPDF. Se requieren tanto los paquetes IronPdf.Extensions.Mvc.Framework como IronPdf para renderizar Vistas en documentos PDF en ASP.NET MVC. Esta separación permite optimizar la funcionalidad específica del marco MVC al tiempo que se mantienen las capacidades básicas de renderizado de PDF.
¿Cómo instalar el paquete de extensión?
Instalación del paquete IronPdf.Extensions.Mvc.Framework
Instalar con NuGet
Instalación del paquete IronPdf.Extensions.Mvc.Framework
¿Cómo renderizar vistas en PDF?
¿Qué tipo de proyecto necesito?
Para convertir vistas en archivos PDF, se necesita un proyecto MVC de aplicación web ASP.NET (.NET Framework). IronPDF es compatible con varias versiones de MVC y proporciona amplias Opciones de renderizado para personalizar la salida de PDF según sus requisitos.
¿Cómo añado una clase modelo?
¿Dónde debo crear el modelo?
- Navega hasta la carpeta "Models"
- Crea un nuevo archivo de clase C# llamado
Person. Esta clase sirve como un modelo para representar datos individuales. Utilice el siguiente código:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-mvc-framework-model.cs
namespace ViewToPdfMVCSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace ViewToPdfMVCSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
¿Cómo edito el controlador?
¿Qué código debo añadir al controlador?
Navega a la carpeta "Controllers" y abre el archivo HomeController. Agrega la acción Persons usando el siguiente código:
En el código proporcionado, primero se crea la clase ChromePdfRenderer. Para utilizar el método RenderView, proporciónale un HttpContext, especifica la ruta al archivo "Persons.cshtml" y proporciona un List<Person> que contenga los datos necesarios. Al renderizar la Vista, puedes utilizar RenderingOptions para personalizar márgenes, agregar textos personalizados y encabezados y pies de página HTML, y aplicar números de página al documento PDF resultante.
El documento PDF puede ser descargado a la máquina usando el siguiente código: File(pdf.BinaryData, "application/pdf", "viewToPdfMVC.pdf").
using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;
namespace ViewToPdfMVCSample.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
// GET: Person
public ActionResult Persons()
{
// Create a list of Person objects
var persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
if (HttpContext.Request.HttpMethod == "POST")
{
// Define the path to the View file
var viewPath = "~/Views/Home/Persons.cshtml";
// Instantiate the ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the view to a PDF document
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
// Set headers to view the PDF in-browser
Response.Headers.Add("Content-Disposition", "inline");
// Return the generated PDF file
return File(pdf.BinaryData, "application/pdf");
}
return View(persons);
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;
namespace ViewToPdfMVCSample.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
// GET: Person
public ActionResult Persons()
{
// Create a list of Person objects
var persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
if (HttpContext.Request.HttpMethod == "POST")
{
// Define the path to the View file
var viewPath = "~/Views/Home/Persons.cshtml";
// Instantiate the ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the view to a PDF document
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
// Set headers to view the PDF in-browser
Response.Headers.Add("Content-Disposition", "inline");
// Return the generated PDF file
return File(pdf.BinaryData, "application/pdf");
}
return View(persons);
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Web.Mvc
Imports ViewToPdfMVCSample.Models
Namespace ViewToPdfMVCSample.Controllers
Public Class HomeController
Inherits Controller
Public Function Index() As ActionResult
Return View()
End Function
' GET: Person
Public Function Persons() As ActionResult
' Create a list of Person objects
'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property:
Dim persons_Conflict = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
If HttpContext.Request.HttpMethod = "POST" Then
' Define the path to the View file
Dim viewPath = "~/Views/Home/Persons.cshtml"
' Instantiate the ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the view to a PDF document
Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict)
' Set headers to view the PDF in-browser
Response.Headers.Add("Content-Disposition", "inline")
' Return the generated PDF file
Return File(pdf.BinaryData, "application/pdf")
End If
Return View(persons_Conflict)
End Function
Public Function About() As ActionResult
ViewBag.Message = "Your application description page."
Return View()
End Function
Public Function Contact() As ActionResult
ViewBag.Message = "Your contact page."
Return View()
End Function
End Class
End Namespace
¿Cómo puedo personalizar las opciones de renderizado de PDF?
Para escenarios más avanzados, puede personalizar la salida PDF utilizando varias opciones de renderizado. He aquí un ejemplo con márgenes personalizados, tamaño de papel y ajustes adicionales:
// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
var persons = GetPersonsList();
if (HttpContext.Request.HttpMethod == "POST")
{
var viewPath = "~/Views/Home/Persons.cshtml";
// Configure the renderer with custom options
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Set custom rendering options
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Set custom paper size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
// Add header and footer
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
renderer.RenderingOptions.TextHeader.FontSize = 12;
renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
renderer.RenderingOptions.TextFooter.FontSize = 10;
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
// Enable JavaScript execution if needed
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute
// Render the view to PDF
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
// Optional: Apply compression to reduce file size
pdf.CompressImages(60);
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf");
}
return View("Persons", persons);
}
// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
var persons = GetPersonsList();
if (HttpContext.Request.HttpMethod == "POST")
{
var viewPath = "~/Views/Home/Persons.cshtml";
// Configure the renderer with custom options
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Set custom rendering options
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Set custom paper size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
// Add header and footer
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
renderer.RenderingOptions.TextHeader.FontSize = 12;
renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
renderer.RenderingOptions.TextFooter.FontSize = 10;
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
// Enable JavaScript execution if needed
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute
// Render the view to PDF
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
// Optional: Apply compression to reduce file size
pdf.CompressImages(60);
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf");
}
return View("Persons", persons);
}
Imports System.Web.Mvc
Imports IronPdf
' Advanced rendering with custom options
Public Function PersonsAdvanced() As ActionResult
Dim persons = GetPersonsList()
If HttpContext.Request.HttpMethod = "POST" Then
Dim viewPath = "~/Views/Home/Persons.cshtml"
' Configure the renderer with custom options
Dim renderer As New ChromePdfRenderer()
' Set custom rendering options
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' Set custom paper size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait
' Add header and footer
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}"
renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
renderer.RenderingOptions.TextHeader.FontSize = 12
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial
renderer.RenderingOptions.TextFooter.FontSize = 10
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
' Enable JavaScript execution if needed
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Wait for JS to execute
' Render the view to PDF
Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons)
' Optional: Apply compression to reduce file size
pdf.CompressImages(60)
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf")
End If
Return View("Persons", persons)
End Function
Para obtener más información sobre la optimización de márgenes, visite nuestra guía sobre Configuración de márgenes personalizados. Si necesita trabajar con dimensiones de papel específicas, consulte nuestra documentación Custom Paper Size.
¿Qué puedo hacer con el PDF generado?
Una vez que obtengas el objeto PdfDocument a través del método RenderView, puedes hacer varias mejoras y ajustes en él. Puede convertir el PDF a los formatos PDFA o PDFUA, aplicar firmas digitales al PDF creado, o fusionar y dividir documentos PDF según sea necesario. La biblioteca permite rotar páginas, insertar anotaciones o marcadores, y aplicar marcas de agua distintivas a los archivos PDF.
Para optimizar el tamaño de los archivos, considere el uso de técnicas de Compresión de PDF. Cuando se trate de contenido con mucho JavaScript, nuestra Guía de renderización de JavaScript ofrece información detallada sobre cómo gestionar los retrasos de renderización personalizados. Para conocer las distintas opciones de exportación, consulte nuestra completa guía sobre Guardar y exportar documentos PDF.
¿Cómo añado una vista?
¿Qué pasos debo seguir para crear la vista?
- Haz clic derecho en la acción Person añadida recientemente y selecciona "Add View".

- Elige "Vista MVC 5" para el nuevo elemento Scaffold.

- Selecciona el template "List" y la clase modelo
Person.

Esto crea un archivo .cshtml llamado "Personas"
¿Cómo añadir un botón de impresión a la vista?
- Navega a la carpeta "Views" -> carpeta "Home" -> archivo "Persons.cshtml".
Para agregar un botón que invoque la acción Persons, usa el código a continuación:
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
<input type="submit" value="Print Person" />
}
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
<input type="submit" value="Print Person" />
}
¿Cómo añado una sección a la barra de navegación superior?
¿Dónde debo actualizar la navegación?
- En la carpeta "Views", navega a la carpeta "Shared" -> archivo "_Layout.cshtml". Coloca el elemento de navegación "Person" después de "Home".
Asegúrate de que los valores para el método ActionLink coincidan exactamente con el nombre de nuestro archivo, que es "Persons".
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
<div class="container">
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
</ul>
</div>
</div>
</nav>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
<div class="container">
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
</ul>
</div>
</div>
</nav>
¿Cómo ejecutar y probar el proyecto?
Ejecutar el proyecto
Aquí se muestra cómo ejecutar el proyecto y generar un documento PDF.
PDF de salida
¿Dónde puedo descargar el proyecto completo?
¿Qué incluye el proyecto de muestra?
Puede descargar el código completo de esta guía. Se trata de un archivo comprimido que puede abrirse en Visual Studio como un proyecto ASP.NET Web Application (.NET Framework) MVC. La muestra incluye todas las configuraciones, clases de modelos, controladores y vistas necesarios para empezar rápidamente con la generación de PDF en sus aplicaciones MVC.
Generación de PDFs desde ASP.NET MVC Framework en el contexto de la facturación electrónica española
Los sistemas empresariales españoles con arquitecturas ASP.NET MVC Framework (.NET 4.x) representan una parte significativa de las instalaciones activas que deben adaptarse a los requisitos de VeriFactu, FACe y la Ley Crea y Crece. IronPDF facilita esta adaptación sin reescribir la aplicación.
VeriFactu y FACe en aplicaciones MVC Framework heredadas
Los portales de facturación electrónica que generan documentos Facturae para su envío a FACe (el punto de acceso B2G del Estado) necesitan adjuntar un PDF de cortesía al XML estructurado. Con IronPDF y el método RenderView, una aplicación ASP.NET MVC Framework existente puede generar este PDF directamente desde la Vista de factura, incluyendo todos los campos obligatorios exigidos por la AEAT: NIF del emisor y receptor, número de serie, fecha de expedición, base imponible y cuota de IVA. Esto permite cumplir con el formato Facturae 3.2.x sin modificar la capa de datos ni el modelo de negocio.
Modernización incremental hacia VeriFactu sin migrar a .NET Core
Muchas empresas españolas sujetas a VeriFactu a partir de 2025 operan sobre aplicaciones MVC Framework en producción que no pueden migrarse a .NET Core en el corto plazo. IronPDF permite una estrategia de modernización incremental: el sistema existente continúa operando en MVC Framework y genera los PDFs de trazabilidad VeriFactu mediante RenderView, mientras se planifica la migración completa. El campo de firma PAdES requerido por eIDAS puede aplicarse al objeto PdfDocument resultante antes de su archivado, cumpliendo así con los requisitos de conservación de 4 años establecidos por la AEAT para documentos tributarios.
Para más información sobre la firma digital de PDFs generados desde vistas MVC, consulte la documentación de Firmas Digitales en IronPDF.
Preguntas Frecuentes
¿Cómo puedo convertir vistas CSHTML a PDF en ASP.NET MVC?
Puede convertir vistas CSHTML a PDF en ASP.NET MVC utilizando el método ChromePdfRenderer.RenderView() de IronPDF. Sólo tiene que instalar el paquete IronPdf.Extensions.Mvc.Framework y utilizar el método de renderizado para transformar sus vistas en documentos PDF de alta calidad con sólo unas pocas líneas de código.
¿Cuál es el código mínimo necesario para convertir una vista en PDF?
El código mínimo para renderizar una vista como PDF es: var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext); Esta única línea de código utilizando IronPDF convertirá su vista actual en un documento PDF.
¿Qué paquete de extensión necesito para generar archivos PDF con ASP.NET MVC?
Para las aplicaciones ASP.NET MVC, necesita el paquete IronPdf.Extensions.Mvc.Framework. Esta extensión proporciona una integración perfecta con los proyectos ASP.NET MVC y funciona junto con el paquete principal IronPDF para permitir la funcionalidad de conversión de vista a PDF.
¿Qué motor de renderizado se utiliza para convertir vistas a PDF?
IronPDF utiliza el motor de renderizado de PDF de Chrome, que garantiza una precisión de píxeles perfecta al convertir vistas a PDF. Este motor mantiene todos los estilos, diseños y elementos interactivos de sus vistas CSHTML originales en la salida PDF final.
¿Puedo generar facturas e informes a partir de vistas MVC?
Sí, IronPDF es perfecta para generar facturas, informes y cualquier otro documento desde sus vistas MVC. La biblioteca ofrece funciones profesionales de salida de PDF, por lo que es ideal para crear documentos empresariales directamente desde las vistas de su aplicación web.
¿Cuáles son los pasos básicos para implementar la conversión de vista a PDF?
La implementación básica implica 5 pasos: 1) Descargar e instalar la librería IronPDF, 2) Añadir una clase modelo para sus datos, 3) Crear una acción de controlador utilizando el método RenderView, 4) Añadir una Vista utilizando MVC 5 View Scaffolding, y 5) Ejecutar la conversión utilizando los métodos de renderizado de IronPDF.
¿Mantiene el PDF el estilo original?
Sí, el motor de renderizado de Chrome de IronPDF garantiza que todos los estilos CSS, diseños y elementos interactivos de sus vistas CSHTML se conserven en la salida PDF. Esto proporciona una precisión de píxeles perfecta y mantiene la integridad visual de sus vistas web originales.
¿Puedo usar IronPDF en ASP.NET MVC Framework para generar PDFs conformes con VeriFactu?
Sí. IronPDF con el paquete IronPdf.Extensions.Mvc.Framework permite generar el PDF de representación gráfica de facturas VeriFactu directamente desde Vistas MVC Framework existentes usando el método RenderView. El objeto PdfDocument resultante puede firmarse con certificado PAdES (FNMT) antes de su archivado, cumpliendo los requisitos de trazabilidad de la AEAT.
¿Cómo adapto un sistema ASP.NET MVC Framework heredado para enviar facturas a FACe?
FACe requiere un XML Facturae con un PDF de cortesía adjunto. Con IronPDF en una aplicación MVC Framework, puede usar RenderView para generar el PDF de cortesía a partir de la Vista de factura existente, incluyendo los campos obligatorios de Facturae (NIF, CIF, importes, tipos IVA). Esta estrategia permite cumplir con FACe sin migrar la aplicación a ASP.NET Core.

