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
Cuando trabajan con documentos PDF en .NET, los desarrolladores a menudo se encuentran comparando varias bibliotecas para determinar cuál se adapta mejor a los requisitos de su proyecto. Tres opciones populares en el ecosistema .NET sonPDFsharp, QuestPDFyIronPDF. Cada biblioteca está dirigida a diferentes casos de uso y ofrece puntos fuertes y débiles únicos. En este artículo, proporcionaremos una comparación detallada de estas bibliotecas y cómo manejan la generación básica de PDF utilizandoesta URLpara ayudarte a tomar una decisión informada.
PDFsharp es una biblioteca de código abierto diseñada para crear, editar y renderizar documentos PDF. Con un enfoque en la simplicidad y en la funcionalidad básica de PDF, PDFsharp ha sido una herramienta confiable para los desarrolladores que buscan capacidades sencillas de manipulación de PDF.
A través del uso del Administrador de Paquetes NuGet, es fácil instalar PDFsharp en tus proyectos, simplemente ejecuta la siguiente línea en la Consola del Administrador de Paquetes NuGet:
Install-Package PDFsharp
Install-Package PDFsharp
Ahora, veamos cómo PDFsharp podría gestionar la creación de un nuevo documento PDF a partir de una URL dada. Dado que PDFsharp por sí solo no puede manejar la conversión de HTML o URL a PDF, necesitaremos integrar un motor de renderizado web como HtmlRenderer.PdfSharp para ayudar. Además, también necesitaremos usar HttpClient para recuperar el contenido HTML de la URL proporcionada.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Ensure proper encoding support
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Generate PDF from the fetched HTML content
var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Ensure proper encoding support
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Generate PDF from the fetched HTML content
var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
Como puedes ver, aunque PDFsharp se puede utilizar para convertir contenido HTML y páginas web a archivos PDF, necesita la ayuda de bibliotecas adicionales y no puede mantener ninguno de los CSS ni el formato que se ve en el sitio web original. Si bien es una excelente biblioteca para desarrolladores de PDF gratuita, carece de algunas de las características más avanzadas que se ven en bibliotecas de pago como IronPDF.
QuestPDF es una biblioteca moderna y de código abierto centrada en generar PDFs visualmente atractivos utilizando una API fluida. Su enfoque innovador para el diseño y renderizado de documentos lo convierte en un fuerte competidor para aplicaciones que requieren diseños dinámicos y complejos.
Nuevamente, gracias a que esta biblioteca está disponible para instalarse como un paquete NuGet, su instalación es un proceso sencillo que requiere solo ejecutar una línea en la Consola de NuGet:
Install-Package QuestPDF
Install-Package QuestPDF
Ahora es el momento de ver cómo QuestPDF manejará la conversión de nuestro ejemplo de URL al formato PDF. Aunque QuestPDF no admite de forma nativa la conversión de URL a PDF, puedes usar un cliente HTTP para obtener el contenido HTML y renderizarlo en un PDF utilizando la API fluida de QuestPDF.
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
QuestPDF.Settings.License = LicenseType.Community;
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Parse the HTML content using HtmlAgilityPack
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
// Extract meaningful content (e.g., text inside <body>)
var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
// Generate PDF using QuestPDF
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(20);
page.Content().Text(bodyContent);
});
}).GeneratePdf("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
QuestPDF.Settings.License = LicenseType.Community;
string url = "https://www.apple.com";
// Fetch HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Parse the HTML content using HtmlAgilityPack
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
// Extract meaningful content (e.g., text inside <body>)
var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
// Generate PDF using QuestPDF
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(20);
page.Content().Text(bodyContent);
});
}).GeneratePdf("output.pdf");
Console.WriteLine("PDF created successfully as 'output.pdf'.");
}
}
}
Al igual que vimos con PDFSharp, aunque QuestPDF se puede utilizar para convertir contenido HTML a PDF con la ayuda de bibliotecas externas como HtmlAgilityPack, no es capaz de mantener ninguno de los estilos y formatos de CSS. Mientras que QuestPDF es una excelente opción para cualquier persona que desee crear documentos PDF desde cero, la conversión de HTML a PDF no es un punto fuerte de esta biblioteca.
IronPDFes una biblioteca PDF robusta diseñada para desarrolladores .NET que necesitan capacidades PDF avanzadas y completas. Su enfoque en la conversión de HTML a PDF, combinado con características adicionales como opciones avanzadas para manipular documentos PDF, cifrado y cumplimiento con PDF/A, lo convierte en una opción poderosa para aplicaciones de nivel empresarial.
Para instalar IronPDF, use el Administrador de Paquetes NuGet en Visual Studio:
Uso del Administrador de Paquetes NuGet:
Abra su proyecto en Visual Studio.
Haga clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccione "Administrar paquetes NuGet".
Busca "IronPDF" y haz clic en "Instalar".
Usando la Consola del Administrador de Paquetes NuGet:
Install-Package IronPdf
Install-Package IronPdf
IronPDF proporciona una API sencilla y directa para la conversiónURLs a PDFs. He aquí un ejemplo:
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
El ejemplo de código anterior demuestra cómo IronPDF puede convertir fácilmente el contenido de una URL a PDF con solo un par de líneas de código. Como puede ver, no solo ha convertido el HTML, sino que también ha convertido el estilo y los diseños CSS, asegurando que el PDF de salida se mantenga fiel al formato original. A través del uso delMotor de renderizado ChromePdfRendererIronPDF produce documentos PDF con precisión de píxeles que no pierden ninguna de las cualidades originales del contenido en el proceso de conversión.
Como se ve aquí, IronPDF es una opción sólida para la conversión de HTML a PDF, así como para la conversión de otros tipos de documentos a PDF. Maneja trabajos de conversión de alta calidad en un bloque de código conciso y fácil de implementar.
PDFsharp es directo y fácil de usar, lo que lo convierte en una excelente opción para principiantes o desarrolladores con necesidades básicas de PDF. Su enfoque procedimental permite una configuración e implementación rápidas para tareas como agregar texto, formas o imágenes a un PDF. Sin embargo, requiere una biblioteca externa para manejar tareas de conversión de HTML y URL a PDF.
QuestPDF, por otro lado, ofrece un enfoque más moderno con su API fluida. Los desarrolladores con experiencia en diseño web o de interfaces de usuario lo encontrarán intuitivo, pero los nuevos pueden enfrentar una pequeña curva de aprendizaje al acostumbrarse a la filosofía de diseño centrada en el diseño. Pero, una vez más, carece de las herramientas integradas para manejar las conversiones de HTML a PDF.
IronPDF proporciona la experiencia más sencilla para la conversión de HTML a PDF y funciones avanzadas de PDF. Su API intuitiva reduce el tiempo de implementación y ofrece documentación robusta y ejemplos. IronPDF puede gestionar la conversión de muchos tipos diferentes de documentos a PDF, como el ejemplo de URL a PDF que vimos en este artículo, todo sin ninguna pérdida de calidad del documento.
El rendimiento es un factor crítico, especialmente para las aplicaciones que necesitan generar PDFs de forma dinámica. PDFsharp es adecuado para documentos pequeños y simples, pero tiene dificultades con diseños de gran escala o complejos.
QuestPDF sobresale en la representación de documentos dinámicos y visualmente atractivos. Está optimizado para manejar diseños estructurados con alta eficiencia.
IronPDF equilibra el rendimiento y la funcionalidad excepcionalmente bien, especialmente para aplicaciones que requieren renderizado de HTML, soporte de CSS y JavaScript. También es altamente capaz de manejar tareas de PDF de nivel empresarial con facilidad.
Elegir la biblioteca de PDF adecuada para tu proyecto .NET depende de tus requisitos específicos. Si necesitas una herramienta ligera y de código abierto para tareas básicas con PDF,PDFsharpes una opción sólida. Para crear documentos dinámicos y visualmente atractivos,QuestPDFdestaca por su enfoque moderno.
Sin embargo, si necesita funciones avanzadas, una conversión perfecta de HTML a PDF y capacidades de nivel empresarial,IronPDFtiene para ofrecer.
Al comprender las fortalezas y limitaciones de cada biblioteca, puedes tomar una decisión informada que se alinee con las necesidades de tu proyecto.