Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.*
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.
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.
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.
Install-Package iTextSharp
Install-Package iTextSharp
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package iTextSharp
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".
A continuación, busque la biblioteca iTextSharp y haga clic en "Instalar".
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
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
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".
using IronPdf;
using IronPdf;
Imports IronPdf
Es importante recordar que IronPDF requiere una clave de licencia para uso comercial/uso fuera del desarrollo.
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.")
Archivo PDF de salida
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
Archivo PDF de salida
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.
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.
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.