Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Con la mejora de la tecnología y el aumento del uso de Internet, los datos se envían y reciben sobre todo en formato digital, principalmente en archivos PDF.
Trabajar con documentos PDF en C# ha sido difícil para los desarrolladores en el pasado reciente. Hay muchos escenarios en los que los desarrolladores necesitan incorporar capacidades de visualización y generación de PDF en sus aplicaciones. Teniendo esto en cuenta, se han desarrollado muchas bibliotecas para facilitar estas tareas y otras similares.
Este artículo va a comparar dos de las bibliotecas PDF más populares para desarrolladores .NET y .NET Core. Estas dos bibliotecas son:
La biblioteca PDFium.NET SDK
IronPDF y PDFium.NET pueden crear, manipular e imprimir archivos PDF en aplicaciones .NET. La cuestión que se plantea es: ¿qué biblioteca debe utilizarse? Este artículo le permitirá comprobarlo por sí mismo.
En primer lugar, echemos un vistazo a lo que ofrecen las dos bibliotecas, y luego pasaremos a la comparación propiamente dicha.
PDFium.NET se utiliza para crear, modificar y visualizar archivos en formato PDF. (formatos de documentos portátiles). Proporciona una API C#/VB.NET de alto nivel para la creación dinámica de PDF en un servidor web y para implementar la función Guardar como PDF en aplicaciones web o de escritorio existentes.
Las características más destacadas de PDFium.NET son:
La biblioteca PDF .NET de IronPDF está hecha a medida para desarrolladores, en particular para desarrolladores de C#. Con esta increíble biblioteca PDF, puede incorporar fácilmente funciones de visualización de PDF en sus proyectos .NET.
IronPDF tiene un motor Chromium incorporado que puede convertir HTML a PDF muy fácilmente. Esto no requiere ninguna API complicada y de bajo nivel para manipular archivos PDF. Puede manejar archivos fuente HTML como documentos HTML, archivos JavaScript y páginas web ASPX.
IronPDF puede personalizar PDF con encabezados y pies de página personalizados, marcas de agua y mucho más. También hace que leer texto en PDF y extraer gráficos sea pan comido para los desarrolladores.
Entre las características más destacadas de IronPDF for .NET se incluyen:
Imprimir archivos PDF sin utilizar Adobe Acrobat Reader.
La biblioteca IronPDF está disponible para casi todos los sistemas operativos y marcos compatibles con C#, incluidos los siguientes:
Azure, AWS, Docker, Linux, Windows
El resto del artículo es el siguiente:
Existen diferentes formas de descargar e instalar la biblioteca IronPDF. Los métodos más sencillos son los siguientes:
En su proyecto de Visual Studio, desde el menú "Herramientas" o haga clic con el botón derecho en su proyecto en el Explorador de soluciones y seleccione "Administrar paquetes NuGet". Ambas opciones se muestran a continuación en las capturas de pantalla.
Una vez abierto el gestor de paquetes NuGet, busque el paquete IronPDF e instálelo, como se muestra en la siguiente captura de pantalla.
IronPDF también puede descargarse a través del símbolo del sistema para desarrolladores. Siga los pasos que se indican a continuación:
Install-Package IronPdf
IronPDF también puede descargarse directamente visitando el sitio NuGet. Los pasos son:
También puede descargue directamente el archivo IronPDF.DLL de la página web.
Haga referencia a la biblioteca IronPDF en su proyecto siguiendo estos pasos:
Haga clic en OK!
Todo hecho! Se descarga e instala IronPDF. Ahora trabajaremos en la instalación de la biblioteca PDFium.NET SDK.
Podemos instalar PDFium.net utilizando NuGet Package Manager o descargando el instalador de PDFium para Windows.
Busque PDFium.NET.SDK. Haga clic en Instalar en su proyecto actual.
PM> Install-Package Pdfium.Net.SDK
IronPDF ofrece varios métodos para generar archivos PDF. Veamos dos importantes.
IronPDF hace que sea muy sencillo convertir HTML a PDF documentos utilizando las URL existentes.
Considere el siguiente código fuente.
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
El siguiente fragmento de código muestra cómo puede utilizarse una cadena HTML para representar una página PDF. Puede utilizar HTML sencillo o combinarlo con CSS, imágenes y JavaScript.
var Renderer = new IronPDF.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new IronPDF.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
El resultado es el siguiente:
Puede generar PDF sobre la marcha utilizando imágenes y objetos de texto. Sin embargo, no es capaz de convertir una URL o una cadena HTML en un archivo PDF.
El código para generar PDFs utilizando PDFium.NET es el siguiente:
public void CreatePDF()
{
// Step 1: Initialize PDF library and create empty document
// Return value: PdfDocument main class
PdfCommon.Initialize();
var doc = PdfDocument.CreateNew(); // Create a PDF document
// Step 2: Add new page
// Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
// The PDF unit of measure is point. There are 72 points in one inch.
var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);
// Step 3: Add graphics and text contents to the page
// Insert image from file using standard System.Drawing.Bitmap class
using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
{
PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
//image resolution is 300 DPI and location is 1.69 x 10.0 inches.
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
page.PageObjects.Add(imageObject);
}
// Create fonts used for text objects
PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
// Insert text objects at 7.69"; 11.02" and font size is 25
PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
textObject.FillColor = FS_COLOR.Black;
page.PageObjects.Add(textObject);
// Step 5: Generate page content and save PDF file
// argument: PDF file name
page.GenerateContent();
doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
public void CreatePDF()
{
// Step 1: Initialize PDF library and create empty document
// Return value: PdfDocument main class
PdfCommon.Initialize();
var doc = PdfDocument.CreateNew(); // Create a PDF document
// Step 2: Add new page
// Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
// The PDF unit of measure is point. There are 72 points in one inch.
var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);
// Step 3: Add graphics and text contents to the page
// Insert image from file using standard System.Drawing.Bitmap class
using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
{
PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
//image resolution is 300 DPI and location is 1.69 x 10.0 inches.
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
page.PageObjects.Add(imageObject);
}
// Create fonts used for text objects
PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
// Insert text objects at 7.69"; 11.02" and font size is 25
PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
textObject.FillColor = FS_COLOR.Black;
page.PageObjects.Add(textObject);
// Step 5: Generate page content and save PDF file
// argument: PDF file name
page.GenerateContent();
doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
El resultado es el siguiente:
Si comparamos la salida de IronPDF y PDFium proyecto, podemos ver claramente que la salida basada en la biblioteca de clases IronPDF da un mejor resultado utilizando la representación HTML y sin siquiera escalar el tamaño de la imagen. Por otra parte, PDFium.NET da un resultado similar a IronPDF, pero sólo con el escalado de la imagen. Si omitimos esta línea de código:
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = New FS_MATRIX(logo.Width * 72 \ 300, 0, 0, logo.Height * 72 \ 300, 1.69 * 72, 10.0 * 72)
La salida será:
Fusionar dos o más PDF es fácil en IronPDF. Con el método Combinar, puede combinar dos o más PDF en los que cada archivo esté separado por una coma. El código es el siguiente:
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var Renderer = new IronPDF.ChromePdfRenderer();
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.PDF");
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var Renderer = new IronPDF.ChromePdfRenderer();
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.PDF");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Con PDFium.NET, no sólo puede combinar varios archivos PDF en un único archivo, sino que también puede seleccionar determinadas páginas específicas de los archivos de origen y combinarlas en un documento PDF.
El siguiente código muestra cómo hacerlo utilizando el método ImportPages
.
public void MergePDF()
{
//Initialize the SDK library.
PdfCommon.Initialize();
//Open and load a PDF document in which other files will be merged
using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // C# Read source PDF File #1
{
//Open one PDF document.
using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) //Read PDF File #2
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
//Open another PDF document.
using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
}
}
public void MergePDF()
{
//Initialize the SDK library.
PdfCommon.Initialize();
//Open and load a PDF document in which other files will be merged
using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // C# Read source PDF File #1
{
//Open one PDF document.
using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) //Read PDF File #2
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
//Open another PDF document.
using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
{
//Import all pages from document
mainDoc.Pages.ImportPages(
doc,
string.Format("1-{0}", doc.Pages.Count),
mainDoc.Pages.Count
);
}
mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
}
}
Public Sub MergePDF()
'Initialize the SDK library.
PdfCommon.Initialize()
'Open and load a PDF document in which other files will be merged
Using mainDoc = PdfDocument.Load("c:\test001.pdf") ' C# Read source PDF File #1
'Open one PDF document.
Using doc = PdfDocument.Load("c:\doc1.pdf") 'Read PDF File #2
'Import all pages from document
mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
End Using
'Open another PDF document.
Using doc = PdfDocument.Load("c:\doc2.pdf")
'Import all pages from document
mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
End Using
mainDoc.Save("c:\ResultDocument.pdf", SaveFlags.NoIncremental)
End Using
End Sub
Una de las funciones más importantes hoy en día es firmar digitalmente un documento PDF. IronPDF ofrece esta posibilidad. El código es el siguiente:
using IronPdf;
// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
/***** Advanced example for more control *****/
// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");
// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");
// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");
//Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);
//Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
using IronPdf;
// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
/***** Advanced example for more control *****/
// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");
// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");
// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");
//Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);
//Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
Imports IronPdf
' Cryptographically sign an existing PDF in 1 line of code!
Call (New IronPDF.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")
'''*** Advanced example for more control ****
' Step 1. Create a PDF
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>")
' Step 2. Create a Signature.
' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
Dim signature = New IronPDF.Signing.PdfSignature("Iron.pfx", "123456")
' Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png")
'Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature)
'Step 4. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf")
PDFium.NET carece de esta capacidad para firmar digitalmente documentos PDF.
IronPDF es de uso gratuito para el desarrollo de aplicaciones sencillas y puede adquirirse una licencia de uso comercial en cualquier momento. Ofrece licencias para un solo proyecto, para un solo desarrollador, para agencias y para organizaciones multinacionales. También ofrece licencias de redistribución SaaS y OEM y asistencia.
Todas las licencias de IronPDF están disponibles con una garantía de devolución del dinero de 30 días, además de un año de soporte y actualizaciones del software. Y lo que es más importante, es una licencia perpetua (compra única). El paquete Lite está disponible por $749. Los productos IronPDF no conllevan ninguna cuota periódica. Encontrará información más detallada sobre las licencias disponibles en IronPDF Licencias página.
PDFium.NET ofrece una licencia perpetua. Puede utilizar esta versión del SDK compatible con su clave de registro para siempre. Sin embargo, la clave sólo funciona con algunas versiones específicas del SDK que dependen de la fecha de compra o renovación de la licencia. Puede instalar cualquier nueva versión del producto gratis, siempre que haya sido lanzada antes o en el plazo de un año desde su compra. PDFium.NET también ofrece 3 paquetes de licencia diferentes:
La licencia de desarrollador individual está diseñada para desarrolladores individuales y autónomos que trabajan para varios clientes.
Puede visitar esta página página para conocer todos los precios.
La librería IronPDF es fácil de usar para crear documentos PDF sin ninguna API complicada. El motor de cromo incorporado permite una conversión perfecta de HTML a PDF con tipos de documentos estándar abiertos como HTML, JS, CSS, JPG, PNG, GIF y SVG.
PDFium.NET SDK es una biblioteca de clases .NET diseñada para satisfacer la mayoría de las necesidades comunes de un desarrollador por un precio más que asequible. Con PDFium.NET SDK, sus aplicaciones pueden mostrar y manipular documentos PDF a las mil maravillas. Su API especial de edición de objetos de página es lo que hace que esta biblioteca sea especialmente potente...
Las licencias de PDFium.NET vienen en tres ediciones, como se ha mencionado anteriormente. La licencia para un solo proyecto ofrece facilidades para un solo desarrollador y hasta tres desarrolladores a partir de 720 y 900 dólares respectivamente. Esto es algo más barato que IronPDF, que tiene una versión lite a partir de $749.
IronPDF ofrece una licencia ilimitada por sólo 2999 dólares. En cambio, PDFium.NET tiene una licencia organizativa para un número ilimitado de desarrolladores por 4320 dólares. Por el contrario, IronPDF ofrece una licencia profesional a partir de 1499 $ que puede ser utilizada por 10 desarrolladores. Esta licencia es aproximadamente la mitad de la licencia equivalente de PDFium.NET para 10 desarrolladores, que es de 2880 $.
En los ejemplos anteriores, ha visto cómo IronPDF crea y modifica documentos PDF utilizando muchas menos líneas de código en comparación con PDFium.NET. Esto ayuda a aliviar la carga de trabajo del desarrollador y le permite ser más productivo. IronPDF proporciona múltiples métodos para convertir de casi cualquier formato a PDF. En cambio, PDFium.NET sólo ofrece unos pocos métodos como imágenes y textos a PDF.
Ahora puede adquiera todas las bibliotecas de productos de Iron Software por sólo el precio de dos de ellos. Además, existe un prueba gratuita para probar la funcionalidad.
9 productos API .NET para sus documentos de oficina