Saltar al pie de página
USANDO IRONPDF

IronPDF vs iTextSharp MVC Visualización de archivos PDF en C#

Convertir vistas MVC de ASP.NET en documentos PDF

La conversión de vistas ASP.NET MVC a documentos PDF es un requisito fundamental en las aplicaciones web ASP.NET Core modernas. Tanto si generas facturas, informes o certificados, el reto sigue siendo: ¿cómo transformas tus vistas Razor cuidadosamente elaboradas en archivos PDF profesionales conservando el formato y el estilo? Este proceso requiere comprender el código completo necesario para generar contenido PDF a partir de archivos HTML. Este tutorial explora dos enfoques populares: la biblioteca iTextSharpheredada y la solución IronPDF moderna, ayudándole a elegir la herramienta adecuada para sus necesidades de generación de PDF.

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 1 - IronPDF

¿Por qué convertir vistas MVC de ASP.NET en documentos PDF?

Las empresas confían en la generación de PDF para innumerables operaciones críticas. Los sistemas de facturación necesitan crear 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 ASP.NET Core documentation, las vistas Razor proporcionan el sistema de plantillas perfecto para generar contenido dinámico que puede convertirse a PDF.

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 2 - Características

¿Cómo gestiona iTextSharpla 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 añadir iTextSharpa su proyecto ASP.NET Core MVC, instale el paquete NuGet:

Install-Package iTextSharp

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 3 - Instalar iTextSharp

Implementación básica con iTextSharp

He aquí un ejemplo completo que muestra cómo convertir una vista MVC a PDF utilizando la clase XMLWorkerHelper de iTextSharpen 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()
    {
        // First step: 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 with binary data
            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()
    {
        // First step: 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 with binary data
            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
        ' First step: 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 with binary data
            Return New FileContentResult(stream.ToArray(), "application/pdf") With {
                .FileDownloadName = "invoice.pdf"
            }
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Este código completo crea un documento PDF básico a partir de contenido HTML en su proyecto de Visual Studio. 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. Tenga en cuenta que este ejemplo utiliza el enfoque más reciente recomendado para obtener mejores resultados.

Resultado

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 4 - Salida PDF

Entender las limitaciones de iTextSharp

La clase XMLWorkerHelper admite etiquetas HTML básicas y CSS en línea. Las propiedades CSS3 modernas, los diseños flexbox y los sistemas de cuadrícula no se renderizan. El contenido dependiente de JavaScript desaparece por completo. Se ignoran estilos complejos como degradados, sombras y transformaciones. Incluso las clases estándar de Bootstrap no se aplican, 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 cuestan a partir de varios miles de dólares al año, por lo que resultan 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 explica en Documentación .NET de Microsoft, la elección de bibliotecas con licencias adecuadas es crucial para los proyectos comerciales.

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 5 - IronPDF vs iTextSharpMVC View to PDF

¿Cómo transforma IronPDF las vistas MVC a PDF?

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.

Instalación de IronPDF

Añada IronPDF a su proyecto con un simple comando NuGet:

Install-Package IronPdf

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 6 - Instalación

Implementación moderna con IronPDF

Creemos la misma factura con un estilo mejorado utilizando IronPDF en su aplicación web ASP.NET MVC:

using IronPdf;
public class HomeController : Controller
{
    // Action method to display the index view
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML file content 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>";
        // Create PDF with Chrome rendering engine
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);
        // Set content disposition for download in browser
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");
        // Return the PDF file with binary data to the user
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
public class HomeController : Controller
{
    // Action method to display the index view
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML file content 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>";
        // Create PDF with Chrome rendering engine
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);
        // Set content disposition for download in browser
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");
        // Return the PDF file with binary data to the user
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf

Public Class HomeController
    Inherits Controller

    ' Action method to display the index view
    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GenerateModernPDF() As ActionResult
        ' Create a styled invoice HTML file content 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>"

        ' Create PDF with Chrome rendering engine
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)

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

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

Esta implementación aprovecha ChromePdfRenderer de IronPDF para convertir el HTML exactamente como aparecería en Chrome. Los fondos degradados, las fuentes modernas y el estilo sofisticado se traducen a la perfección. El renderizador maneja propiedades CSS complejas que iTextSharpno puede procesar, como flexbox, diseños de cuadrícula, transformaciones y animaciones (renderizadas como marcos estáticos). El método RenderHtmlAsPdf hace que la conversión de HTML a PDF en MVC sea notablemente sencilla.

Resultado

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 7 - Salida IronPDF

Inicie su prueba gratuita y experimente la generación moderna de PDF con el motor de renderizado de IronPDF impulsado por Chrome.

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 8 - Compatibilidad entre plataformas

¿Qué biblioteca genera mejores archivos PDF?

Al comparar la conversión de vistas de iTextSharpy IronPDF for .NET MVC, surgen varios factores críticos que diferencian claramente estas bibliotecas.

Comparación de características

Características iTextSharp IronPDF
Compatibilidad con HTML5 Limitado Completo
Renderizado CSS3 Sólo básico Completar
Ejecución de JavaScript No
Compatibilidad con Flexbox/Grid No
Compatibilidad con Bootstrap Parcial Completo
Compatibilidad con fuentes web Limitado Completar
Gráficos SVG No
Diseño adaptable No
Curva de aprendizaje Encaramado Suave
Complejidad de la API Bajo nivel Alto nivel

Consideraciones sobre la licencia

La diferencia de licencias entre estas bibliotecas afecta significativamente al desarrollo comercial. la licencia AGPL de iTextSharpcrea 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 iTextSharpno 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 único 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 vs iTextSharpMVC View to PDF File in 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. iTextSharpproduce 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 PDF perfectos en píxeles que coinciden exactamente con el diseño de su web. Los degradados se reproducen con fluidez, las fuentes personalizadas se muestran correctamente y los diseños complejos mantienen su estructura. El motor Chromium garantiza que sus PDF tengan un aspecto idéntico al de la vista web, preservando su identidad de marca y su aspecto profesional en todos los documentos generados.

¿Qué funciones avanzadas ofrece IronPDF?

Más allá de la conversión HTML básica, IronPDF ofrece funciones de nivel empresarial que agilizan 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.

Seguridad y cifrado

Proteja los documentos confidenciales con contraseñas y permisos mediante las completas 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. Se puede restringir la impresión, la copia y la edición, al tiempo que se mantiene el control total del propietario con fines administrativos.

Resultado

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 10 - Secure PDF Output

Manejo de campos de formulario

IronPDF convierte a la perfección formularios HTML en formularios PDF interactivos:

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);
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 agiliza el flujo de trabajo documental.

Resultado

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 11 - Form Output

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

Incluso con las modernas bibliotecas y herramientas de Visual Studio, ciertos retos requieren soluciones específicas para garantizar un resultado óptimo en PDF. Este artículo explicará los siguientes patrones de código para ayudarle a generar PDF de forma eficaz.

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 para la impresión, optimizando los diseños para la salida en PDF en lugar de la visualización en pantalla en el navegador. El método garantiza la correcta visualización del documento.

Tiempo de ejecución de JavaScript

Cuando convierta contenido dinámico y trabaje con datos de su base de datos, deje tiempo para la ejecución de JavaScript en su proyecto MVC. Este proceso garantiza una traducción completa:

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 en PDF. Tenga en cuenta que este es el primer paso en el manejo de contenido dinámico cuando genere el archivo PDF.

Resultado

IronPDF vs iTextSharpMVC View to PDF File in C#: Imagen 12 - Salida de ejecución de JavaScript

Incorporación de fuentes y formato de documentos

Asegúrese de que las fuentes personalizadas se muestran correctamente incrustándolas en su HTML. Este ejemplo muestra cómo crear un nuevo párrafo con fuentes personalizadas en el código fuente:

@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. El uso de iTextSharppuede requerir una configuración adicional para obtener el mismo resultado. Basta con escribir el CSS adecuado y renderizar para producir PDF profesionales con un formato perfecto. Recuerda descargar y probar la versión final en diferentes sistemas para garantizar la compatibilidad.

Conclusión

Aunque iTextSharpha servido bien a la comunidad .NET durante muchos años, el desarrollo web moderno exige capacidades de generación de PDF más sofisticadas. El proceso de creación y generación de archivos PDF ha evolucionado considerablemente. El motor de renderizado basado en Chrome de IronPDF ofrece la precisión perfecta de píxeles y la compatibilidad con CSS3 que requieren las aplicaciones ASP.NET MVC actuales. Su sencilla API, su completa documentación y su licencia empresarial lo convierten en la elección más clara para los proyectos MVC de ASP.NET Core.

Empieza hoy mismo con IronPDF para descargar la librería y transformar tus vistas MVC en impresionantes documentos PDF con sólo unas pocas líneas de código. Envíe su primer proyecto y experimente la potencia de la generación moderna de PDF.

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 ventajas de utilizar iTextSharp para la conversión de PDF?

iTextSharp es una robusta biblioteca PDF que ofrece amplias funcionalidades para crear y manipular documentos PDF. Es muy utilizada por su fiabilidad y su amplio conjunto de funciones.

¿Se pueden utilizar IronPDF e iTextSharp juntos?

Sí, IronPDF e iTextSharp pueden utilizarse conjuntamente para aprovechar los puntos fuertes de ambas bibliotecas, mejorando las capacidades de creación y manipulación de PDF dentro de las aplicaciones .NET.

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

IronPDF requiere .NET Framework 4.0 o superior, y es compatible con los sistemas operativos Windows, Linux y Mac, lo que permite su uso en diversos entornos de desarrollo.

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

Sí, con IronPDF, los desarrolladores pueden personalizar la salida PDF ajustando parámetros como el tamaño de página, la orientación, los márgenes, etc. para satisfacer requisitos específicos.

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

IronPDF admite estilos CSS, lo que garantiza que el PDF convertido mantenga el aspecto visual de la vista HTML o MVC original, incluidos los tipos de letra, los colores y el diseño.

¿Cómo es el rendimiento de IronPDF en comparación con otras bibliotecas PDF?

IronPDF está diseñado para ofrecer un alto rendimiento, proporcionando capacidades de procesamiento de PDF rápidas y eficientes que lo hacen adecuado para aplicaciones que requieren una rápida generación de documentos.

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

La documentación completa de IronPDF se puede encontrar en el sitio web oficial de Iron Software, que incluye 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