COMPARACIóN DE PRODUCTOS

iTextsharp HTML a PDF con Estilos CSS C# Ejemplo vs IronPDF

Chipego
Chipego Kalinda
24 de abril, 2025
Compartir:

Convertir HTML a PDF es una tarea crucial en muchos flujos de trabajo de desarrollo de software moderno, ya sea para generar informes, facturas o crear documentación. Como desarrollador de C#, tienes a tu disposición varias bibliotecas para agilizar este proceso.

En este artículo, compararemos dos de las bibliotecas más populares dentro del ecosistema .NET: IronPDF y iTextSharp. Ambas bibliotecas ofrecen una funcionalidad robusta, pero difieren en áreas clave como la facilidad de uso, las herramientas de creación de PDF, el soporte para el estilo CSS y las licencias. Ya sea que seas un principiante o un desarrollador experimentado, esta guía te ayudará a comprender sus características principales y decidir cuál es la mejor opción para ti según tus necesidades y requisitos del proyecto.

¿Quieres seguir junto a nosotros? Descargue la prueba gratuita de IronPDF para explorar las potentes funciones de IronPDF por usted mismo.*

Comparación de las principales bibliotecas: iTextSharp e IronPDF

Tanto iTextSharp como IronPDF proporcionan a los desarrolladores las herramientas que necesitan para la conversión de HTML a PDF en C#. Sin embargo, cada uno tiene sus propias fortalezas y debilidades.

  • iTextSharp es una biblioteca de código abierto que ha existido durante mucho tiempo. Ofrece flexibilidad y amplias opciones de personalización, pero puede ser algo complejo de configurar y usar, especialmente al tratar con el renderizado avanzado de HTML y CSS. Sin embargo, cabe señalar que iTextSharp es un producto heredado y ahora solo recibe actualizaciones relacionadas con la seguridad.
  • IronPDF, por otro lado, es un producto comercial desarrollado por Iron Software. Es conocido por su interfaz fácil de usar, su sólido soporte para CSS y su facilidad de uso. Se integra perfectamente con aplicaciones C#, lo que lo convierte en una excelente opción para los desarrolladores que necesitan una generación de PDF rápida y eficiente sin sacrificar la calidad.

    Antes de sumergirnos en cómo convertir HTML a formato PDF con estas dos bibliotecas, primero veamos una comparación básica que muestra la diferencia en cómo estas dos bibliotecas manejan la conversión de contenido web/HTML con mucho CSS y JavaScript en un documento PDF.

    iTextSharp vs IronPDF URL a PDF

    Como puede ver en los documentos PDF resultantes, esto demuestra cómo iTextSharp realmente solo puede procesar el contenido HTML bruto de la URL proporcionada, mientras que IronPDF es capaz de mantener el diseño y el estilo CSS originales, asegurando que el documento PDF generado se asemeje estrechamente a la página web original.

Guía de instalación paso a paso

Configuración de iTextSharp

  1. Instalar a través de la consola de NuGet: Para comenzar a usar iTextSharp, puedes instalarlo directamente desde NuGet. Abre tu proyecto de Visual Studio, ve al Administrador de paquetes NuGet, y ejecuta el siguiente comando:
Install-Package iTextSharp
Install-Package iTextSharp
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package iTextSharp
$vbLabelText   $csharpLabel

Instalando iTextSharp a través de la Consola de NuGet

  1. Instalar a través del Administrador de Paquetes NuGet: Alternativamente, puede instalarlo a través del administrador de paquetes NuGet en la pantalla de Solución. Para hacerlo, navega a "Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución".

    Menú desplegable de herramientas

    A continuación, busque la biblioteca iTextSharp y haga clic en "Instalar".

    Pantalla de iTextSharp NuGet

  2. Agregar Referencias: Una vez instalado, agrega las referencias necesarias en tu proyecto, particularmente las relacionadas con la conversión de HTML a PDF.
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
Imports iTextSharp.text.pdf
Imports iTextSharp.text.html.simpleparser
$vbLabelText   $csharpLabel

Configuración de IronPDF

  1. Instalar a través de la consola de NuGet: Para comenzar a usar IronPDF, puede instalarlo directamente desde NuGet. Abre tu proyecto de Visual Studio, ve al Administrador de paquetes NuGet, y ejecuta el siguiente comando:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
$vbLabelText   $csharpLabel
  1. Instalar a través del administrador de paquetes NuGet: Alternativamente, puede instalarlo a través del administrador de paquetes NuGet en la pantalla de Solución, tal como hicimos en los pasos anteriores para iTextSharp. Sin embargo, esta vez, busque IronPDF antes de hacer clic en "Instalar".

    Pantalla de NuGet de IronPDF

  2. Agregar referencias: Una vez instalado, importe IronPDF a su proyecto:
using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Es importante recordar que IronPDF requiere una clave de licencia para uso comercial/uso fuera del desarrollo.

Implementación de la conversión de HTML a PDF

Uso de iTextSharp

Una vez que iTextSharp esté configurado, también debe asegurarse de tener el paquete itextsharp.xmlworker instalado en su proyecto antes de poder comenzar a crear PDF a partir de contenido HTML. Sin embargo, te enfrentarás a desafíos con HTML más complejo, especialmente cuando están involucrados estilos CSS. iTextSharp tiende a requerir un esfuerzo adicional para lograr un estilo perfecto en comparación con IronPDF. Es importante recordar que iTextSharp solo maneja HTML/CSS2 básico (sin flexbox, sin grid, CSS limitado).

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
Dim html As String = "
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>"

Using stream As New FileStream("report.pdf", FileMode.Create)
	Dim pdfDoc As New Document(PageSize.A4, 25, 25, 30, 30)
	Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, stream)
	pdfDoc.Open()
	Using sr As New StringReader(html)
		XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
	End Using
	pdfDoc.Close()
	writer.Close()
End Using
Console.WriteLine("PDF generation completed successfully.")
$vbLabelText   $csharpLabel

Archivo PDF de salida

Salida de iTextSharp HTML a PDF

Uso de IronPDF

IronPDF simplifica el proceso de generación de PDF, siendo capaz de convertir fácilmente contenido HTML en nuevos documentos PDF en solo unas pocas líneas de código, como se demuestra en el ejemplo de código a continuación. Es capaz de trabajar con documentos HTML avanzados con archivos CSS usados para el diseño, cadenas HTML y contenido web pesado en CSS/JavaScript.

A continuación se muestra un ejemplo simple que incluye CSS en línea:

using IronPdf;

class Program
{
    static void Main()
    {
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF 
 © 2025 DevCorp
            </div>
        </body>
        </html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("AdvancedStyledReport.pdf");

    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF 
 © 2025 DevCorp
            </div>
        </body>
        </html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("AdvancedStyledReport.pdf");

    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		Dim content = "
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF 
 © 2025 DevCorp
            </div>
        </body>
        </html>"

		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		pdf.SaveAs("AdvancedStyledReport.pdf")

	End Sub
End Class
$vbLabelText   $csharpLabel

Archivo PDF de salida

Salida de IronPDF HTML a PDF

Con IronPDF, puedes esperar un archivo PDF pulido con un estilo CSS preciso, como se ve en el ejemplo de código anterior, lo que lo convierte en una opción preferida para muchos desarrolladores que trabajan con archivos HTML complejos, cadenas y más. Más allá de las simples tareas de conversión de documentos HTML a PDF, IronPDF es capaz de realizar tareas avanzadas de manipulación de PDF y de seguridad de PDF. Esto lo convierte en una excelente biblioteca PDF todo en uno.

Diferencias clave y panorama de competidores

Al evaluar iTextSharp e IronPDF, es importante considerar no solo sus características, sino también el panorama competitivo. Otros competidores como Apryse y Aspose.PDF ofrecen soluciones similares de HTML a PDF, pero con sus propios compromisos en términos de precios y funcionalidad.

Característica IronPDF iTextSharp Apryse Aspose.PDF


Facilidad de Uso Alto Medio Alto Medio

Soporte de CSS Completo Parcial Completo Completo

Licenciamiento Comercial Código Abierto Comercial Comercial

Soporte Excelente Comunidad Premium Premium

Precios Desde $749 Licencia gratuita/comercial Basado en cotización Desde $1,679 por año

IronPDF se destaca por su soporte integral para HTML5 y CSS3 modernos, lo cual es fundamental para la mayoría de los desarrolladores hoy en día. Su soporte extendido para manipular documentos PDF, el control sobre la creación de documentos PDF, la facilidad con el proceso de conversión y más, hacen de IronPDF una biblioteca PDF popular.

Conclusión y Recomendaciones

En conclusión, tanto IronPDF como iTextSharp ofrecen fuertes capacidades para la conversión de HTML a PDF en C#, pero están dirigidos a diferentes tipos de desarrolladores. Si buscas una solución de código abierto con un fuerte apoyo de la comunidad, iTextSharp puede ser la opción adecuada. Sin embargo, para los desarrolladores que necesitan facilidad de uso, soporte CSS sólido, y una solución comercial, IronPDF ofrece una experiencia mucho más simplificada y rica en funciones. Ya sea que esté buscando una herramienta que pueda automatizar la generación de facturas, crear documentos PDF con marca o convertir páginas web enteras en archivos PDF, IronPDF lo tiene cubierto.

Prueba hoy las funciones fáciles de usar de IronPDF: descarga la prueba gratuita para experimentar de primera mano y ver lo fácil que puede ser la conversión de HTML a PDF.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
IronPDF y Puppeteer C#: Una Comparación
SIGUIENTE >
Cómo combinar archivos PDF con iTextSharp