Saltar al pie de página
USANDO IRONPDF

Cómo convertir vistas MVC de ASP.NET a PDF: IronPDF vs iTextSharp

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

La conversión de vistas ASP.NET MVC a documentos PDF es un requisito fundamental en las aplicaciones web modernas. Ya sea que esté generando facturas, informes o certificados, el desafío es claro: ¿cómo transformar las vistas de Razor en archivos PDF profesionales que preserven el formato y el estilo? Esta guía compara la biblioteca heredada iTextSharp con IronPDF , la solución moderna impulsada por Chromium, para que pueda elegir la herramienta adecuada para su flujo de trabajo de generación de PDF.

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 1 - IronPDF

¿Por qué necesita convertir vistas MVC a PDF?

Las empresas dependen de la generación de PDF para innumerables operaciones críticas. Los sistemas de facturación necesitan documentos de facturación a prueba de manipulaciones. Los departamentos de RRHH generan certificados y contratos de trabajo. Los equipos de ventas elaboran presupuestos y propuestas. Las plataformas educativas expiden certificados de finalización. Cada escenario exige una generación de PDF en el servidor que mantenga un formato coherente en todos los dispositivos y plataformas.

Según la documentación de ASP.NET Core , las vistas Razor proporcionan un excelente sistema de plantillas para generar contenido dinámico que luego se puede convertir a PDF. La pregunta clave es qué biblioteca le ofrece la solución más precisa, sostenible y legalmente adecuada.

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 2 - Características

¿Cómo gestiona iTextSharp la conversión de MVC a PDF?

iTextSharp ha sido un elemento básico en la generación de PDF .NET durante más de una década. Originalmente portado de la biblioteca iText de Java, proporciona un control de bajo nivel sobre la creación de PDF. Sin embargo, su enfoque de la conversión a HTML muestra su antigüedad, sobre todo cuando se trata de contenidos web modernos.

Instalación de iTextSharp

Para agregar iTextSharp a su proyecto ASP.NET Core MVC, instale el paquete NuGet mediante la Consola del Administrador de paquetes:

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 3 - Instalar iTextSharp

Implementación básica con iTextSharp

A continuación se muestra un ejemplo completo que ilustra cómo convertir una vista MVC a PDF utilizando la clase XMLWorkerHelper de iTextSharp en su proyecto ASP.NET MVC:

using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
Imports iTextSharp.text
Imports iTextSharp.tool.xml
Imports iTextSharp.text.pdf
Imports System.IO

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GeneratePDF() As ActionResult
        ' Create a simple invoice HTML
        Dim invoiceHtml As String = "
            <h1>Invoice #1001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>"

        ' Create PDF document using iTextSharp
        Using stream As New MemoryStream()
            Dim document As New Document(PageSize.A4)
            Dim writer As PdfWriter = PdfWriter.GetInstance(document, stream)
            document.Open()

            Using srHtml As New StringReader(invoiceHtml)
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml)
            End Using

            document.Close()

            ' Return the PDF file
            Return New FileContentResult(stream.ToArray(), "application/pdf") With {
                .FileDownloadName = "invoice.pdf"
            }
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Este ejemplo crea un documento PDF básico a partir de contenido HTML. La clase XMLWorkerHelper procesa la cadena HTML y añade elementos al documento PDF utilizando el modelo de objetos. El PdfWriter se encarga del proceso de generación del PDF, mientras que el Document gestiona la estructura de la página.

Resultado

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 4 - Salida en PDF

¿Cuáles son las principales limitaciones de iTextSharp?

La clase XMLWorkerHelper admite etiquetas HTML básicas y CSS en línea. Las propiedades CSS3 modernas, los diseños de flexbox y los sistemas de cuadrícula no se representan. El contenido dependiente de JavaScript desaparece por completo. Se ignoran estilos complejos como degradados, sombras y transformaciones. Incluso las clases Bootstrap estándar no se pueden aplicar, lo que hace que las vistas cuidadosamente diseñadas parezcan simples y poco profesionales.

Muchos desarrolladores han informado de estas limitaciones en Stack Overflow, lo que provoca frustración al intentar convertir vistas MVC a PDF con iTextSharp.

Quizá lo más preocupante sea el modelo de licencias de iTextSharp. La biblioteca utiliza la licencia AGPL, que exige que toda la aplicación sea de código abierto si se utiliza la versión gratuita. Las licencias comerciales comienzan en varios miles de dólares por año, lo que las hace prohibitivamente caras para muchas empresas. Esta restricción de licencias ha empujado a muchos desarrolladores a buscar alternativas que se ajusten mejor a las necesidades de desarrollo comercial. Como se analiza en la documentación .NET de Microsoft , elegir bibliotecas con licencias adecuadas es fundamental para los proyectos comerciales.

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 5 - IronPDF frente a iTextSharp: vista MVC a PDF

¿Cómo convertir vistas MVC a PDF con una biblioteca moderna?

IronPDF representa un enfoque moderno para la generación de PDF en ASP.NET Core MVC. Basado en el motor de renderizado Chromium, convierte HTML a PDF exactamente como aparece en Google Chrome, conservando todo el estilo, la ejecución de JavaScript y los elementos de diseño adaptable.

¿Cómo se instala IronPDF?

Agregue IronPDF a su proyecto a través de la consola del Administrador de paquetes NuGet :

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 6 - Instalación

Implementación moderna con IronPDF

La misma factura creada anteriormente ahora utiliza CSS moderno y renderizado HTML5 completo con ChromePdfRenderer de IronPDF :

using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports System.Web.Mvc

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GenerateModernPDF() As ActionResult
        ' Create a styled invoice HTML with modern CSS
        Dim invoiceHtml As String = "
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>"

        ' Use Chromium engine for rendering
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)

        ' Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf")

        ' Return the PDF file with binary data
        Return New FileContentResult(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

El ChromePdfRenderer convierte el HTML exactamente como lo mostraría Chrome. Los fondos degradados, las fuentes modernas y el estilo sofisticado se reproducen con precisión. El renderizador maneja propiedades CSS complejas que iTextSharp no puede procesar, incluidos flexbox, diseños de cuadrícula y transformaciones CSS renderizadas como marcos estáticos. El método RenderHtmlAsPdf facilita la conversión de HTML a PDF en MVC.

Resultado

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 7 - Salida de IronPDF

Comienza tu prueba gratuita y experimenta la generación moderna de PDF con el motor de renderizado impulsado por Chrome.

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 8 - Compatibilidad multiplataforma

¿Cómo elegir entre estas dos bibliotecas PDF?

Al comparar iTextSharp y IronPDF para la conversión de vistas .NET MVC, varios factores diferencian claramente estas bibliotecas en cuanto a calidad de representación, experiencia del desarrollador y licencias.

Comparación de características

Comparación de funciones de iTextSharp vs. IronPDF
Función iTextSharp IronPDF
Compatibilidad con HTML5 Limitado Completo
Representación CSS3 Solo básico Completo
Ejecución de JavaScript No
Compatibilidad con Flexbox/Grid No
Compatibilidad con Bootstrap Parcial Completo
Compatibilidad con fuentes web Limitado Completo
Gráficos SVG No
Diseño responsivo No
Complejidad de la API De bajo nivel De alto nivel

Consideraciones sobre la licencia

La diferencia de licencias entre estas bibliotecas afecta significativamente al desarrollo comercial. la licencia AGPL de iTextSharp crea obligaciones legales que muchas empresas no pueden aceptar. El uso de la versión gratuita requiere que toda la aplicación sea de código abierto, incluida la lógica empresarial propietaria. Esta restricción hace que iTextSharp no sea adecuado para la mayoría de los proyectos comerciales, a menos que adquiera una costosa licencia comercial.

IronPDF ofrece licencias comerciales sencillas a partir de $799 para un solo desarrollador. La licencia incluye un año de actualizaciones y soporte, sin obligación de abrir la aplicación. Este modelo de precios transparente se ajusta a los presupuestos típicos de desarrollo de software, lo que hace que la generación profesional de PDF sea accesible para empresas de todos los tamaños al convertir vistas MVC a PDF en C#.

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 9 - Licencias

Análisis de la calidad de los resultados

La diferencia en la calidad de la traducción se aprecia inmediatamente al comparar los resultados. iTextSharp produce PDF básicos que se asemejan a documentos de principios de la década de 2000. Las tablas carecen del estilo adecuado, las fuentes se ajustan a los estándares del sistema y los elementos de diseño modernos desaparecen por completo. Los PDF resultantes tienen un aspecto poco profesional y no se ajustan a la imagen de marca de su aplicación.

IronPDF genera archivos PDF con píxeles perfectos que se adaptan a su diseño web. Los degradados se representan con precisión, las fuentes personalizadas se muestran correctamente y los diseños complejos mantienen su estructura. El motor Chromium garantiza que sus PDF se vean idénticos a la vista web, preservando la identidad de marca y la apariencia profesional en todos los documentos generados.

¿Qué funciones avanzadas ofrece el renderizador de PDF?

Más allá de la conversión HTML básica, IronPDF ofrece funciones de nivel empresarial que aceleran la generación de PDF profesionales. La documentación completa de la API demuestra las amplias capacidades de la biblioteca para convertir vistas MVC a PDF.

Cabeceras y pies de página

Añade encabezados y pies de página profesionales con contenido dinámico:

var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
Dim renderer = New ChromePdfRenderer With {
    .RenderingOptions = New ChromePdfRenderOptions With {
        .HtmlHeader = New HtmlHeaderFooter With {
            .MaxHeight = 25,
            .HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        .HtmlFooter = New HtmlHeaderFooter With {
            .MaxHeight = 20,
            .HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
}
$vbLabelText   $csharpLabel

Esta configuración añade coherencia de marca a todas las páginas. Los marcadores de posición {page} y {total-pages} se rellenan automáticamente con los valores correctos, lo que garantiza una paginación precisa en todo el documento. Para obtener más opciones de configuración, consulte la guía de encabezados y pies de página .

Seguridad y cifrado

Proteja documentos confidenciales con contraseñas y permisos utilizando las funciones de seguridad de IronPDF:

var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
Dim pdf = renderer.RenderHtmlAsPdf(html)

' Add password protection
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"

' Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False
$vbLabelText   $csharpLabel

Estas opciones de seguridad impiden el acceso no autorizado y controlan la forma en que los destinatarios pueden interactuar con sus PDF al convertir vistas MVC a PDF. Puede restringir la impresión, la copia y la edición manteniendo el control total del propietario. Obtenga más información en la documentación de seguridad en PDF .

Resultado

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 10 - Salida de PDF segura

Manejo de campos de formulario

IronPDF convierte formularios HTML en formularios PDF interactivos sin necesidad de herramientas adicionales:

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
Imports System

Dim formHtml As String = "
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>"

Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
$vbLabelText   $csharpLabel

El PDF resultante mantiene la interactividad del formulario, permitiendo a los usuarios rellenar los campos directamente en su lector de PDF. Esta función elimina la necesidad de herramientas de creación de formularios independientes, lo que simplifica el flujo de trabajo de sus documentos. Explore la documentación de formularios para obtener más opciones.

Resultado

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 11 - Salida del formulario

¿Cómo resolver problemas comunes de generación de PDF?

Incluso con bibliotecas modernas, ciertos desafíos requieren soluciones específicas para garantizar una salida PDF óptima. Los siguientes patrones abordan los problemas más frecuentes que encuentran los desarrolladores al convertir vistas MVC a PDF.

Optimización de renderizado CSS

Para obtener mejores resultados con CSS complejo al convertir archivos HTML a formato PDF, utilice consultas de medios de impresión:

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Esta configuración aplica reglas CSS específicas de impresión, optimizando los diseños para la salida en PDF en lugar de la visualización en pantalla. La combinación de esto con hojas de estilo optimizadas para impresión le brinda un control preciso sobre los saltos de página, los márgenes y la tipografía. La guía de tipos de medios CSS explica opciones de renderizado adicionales.

Tiempo de ejecución de JavaScript

Al convertir contenido dinámico, espere a que se complete la ejecución de JavaScript antes de capturar el PDF. Esto garantiza que todas las llamadas AJAX y las manipulaciones DOM finalicen:

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
$vbLabelText   $csharpLabel

Esta configuración garantiza que las llamadas AJAX se completen y las manipulaciones DOM finalicen antes de que comience la generación de PDF, capturando el estado completamente renderizado de su vista MVC. Para bibliotecas de gráficos y otro contenido con gran carga asincrónica, es posible que deba aumentar el valor de retraso.

Resultado

IronPDF frente a iTextSharp: vista MVC a archivo PDF en C#: Imagen 12 - Salida de la ejecución de JavaScript

Incorporación de fuentes y formato de documentos

Asegúrese de que las fuentes personalizadas se representen correctamente incrustándolas directamente en su HTML mediante URI de datos codificados en base64:

@font-face {
    font-family: 'CustomFont';
    src: url(data:font/woff2;base64,[base64-encoded-font]) format('woff2');
}

La incrustación de fuentes directamente en el HTML garantiza una representación coherente en todos los entornos, eliminando los problemas de fuentes ausentes en los documentos PDF generados. Este enfoque funciona igual de bien tanto si se utiliza una representación basada en URL mediante RenderUrlAsPdf como una representación basada en cadenas mediante RenderHtmlAsPdf.

Para conocer patrones de configuración adicionales, incluido el tamaño de página, la orientación y el control de márgenes, visite la documentación de opciones de representación de IronPDF . También puede revisar proyectos de ejemplo en GitHub que demuestran patrones de integración MVC comunes.

¿Cuales son tus próximos pasos?

Si bien iTextSharp prestó servicios a la comunidad .NET durante muchos años, el desarrollo web moderno exige una generación de PDF más capaz. El motor de renderizado de IronPDF, basado en Chrome, ofrece la precisión de píxeles perfecta y la compatibilidad total con CSS3 que requieren las aplicaciones ASP.NET MVC actuales. Su API de alto nivel, documentación exhaustiva y licencias optimizadas para empresas lo convierten en la opción ideal para proyectos ASP.NET Core MVC.

Para avanzar con la generación de PDF en su aplicación:

Preguntas Frecuentes

¿Para qué sirve convertir vistas MVC a PDF?

La conversión de vistas MVC a PDF permite a los desarrolladores generar documentos imprimibles y fácilmente compartibles directamente desde aplicaciones web, conservando la disposición y el diseño de la vista original.

¿Qué es IronPDF?

IronPDF es una biblioteca .NET que facilita la creación, edición y conversión de documentos PDF dentro de aplicaciones .NET, ofreciendo una forma sencilla de integrar la funcionalidad PDF.

¿Cómo simplifica IronPDF la conversión de vistas MVC a PDF?

IronPDF simplifica el proceso al permitir a los desarrolladores convertir vistas HTML y MVC directamente a formato PDF sin grandes requisitos de codificación, conservando la disposición y el diseño originales.

¿Cuáles son las limitaciones de iTextSharp para la conversión de PDF en MVC?

XMLWorkerHelper de iTextSharp no admite CSS3 moderno, flexbox, diseños de cuadrícula, ejecución de JavaScript o estilo de Bootstrap. Su licencia AGPL también requiere abrir el código fuente de tu aplicación si usas la versión gratuita.

¿Puede IronPDF renderizar JavaScript antes de generar el PDF?

Sí, IronPDF admite la ejecución de JavaScript durante la renderización. Puedes habilitarlo con EnableJavaScript y controlar el retraso de renderización usando WaitFor.RenderDelay para asegurar que el contenido dinámico esté completamente cargado.

¿Cuáles son los requisitos del sistema para usar IronPDF?

IronPDF es compatible con .NET 6, .NET 7, .NET 8, .NET Core y .NET Framework 4.6.2+. Funciona en Windows, Linux y macOS.

¿Es posible personalizar la salida PDF al convertir vistas MVC?

Sí, usando IronPDF, los desarrolladores pueden personalizar la salida del PDF ajustando configuraciones como tamaño de página, orientación, márgenes, encabezados, pies de página, configuraciones de seguridad y tipo de medio CSS.

¿Es IronPDF compatible con el estilo CSS para la conversión de PDF?

IronPDF admite el estilo completo de CSS3 a través de su motor de renderizado Chromium, asegurando que el PDF convertido mantenga la apariencia visual del HTML original o vista MVC, incluyendo fuentes, colores, degradados y diseño.

¿Cómo se compara el rendimiento de IronPDF con iTextSharp?

IronPDF utiliza el motor Chromium para renderizar, lo que agrega una sobrecarga de arranque pero ofrece una precisión de renderización mucho superior. Para escenarios de alto volumen, IronPDF admite la renderización asincrónica y puede optimizarse con instancias de renderizado seguras para subprocesos.

¿Dónde puedo encontrar documentación sobre IronPDF?

Documentación completa para IronPDF está disponible en https://ironpdf.com/how-to/, incluyendo guías, tutoriales y referencias de API para ayudar a los desarrolladores en la implementación.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame