Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Consigue 30 días de producto totalmente funcional.
Póngalo en marcha en cuestión de minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
Para los desarrolladores que trabajan con PDFs, tener una biblioteca confiable para la generación y manipulación de PDFs es esencial. En el ecosistema .NET, puede haber docenas de bibliotecas PDF de C# para elegir, entonces, ¿cómo elegir cuál se adapta mejor a sus necesidades?
Seleccionar la biblioteca adecuada es crucial para un desarrollo eficiente al trabajar con funcionalidades PDF en aplicaciones .NET. Este artículo ofrece una comparación detallada entre dos destacadas bibliotecas PDF de C#:IronPDF yiText 7 (antes conocido como iTextSharp). Exploraremos sus características, rendimiento, licencias y adecuación para diversos requisitos de proyectos para ayudarle a tomar una decisión informada.
Los PDFs se utilizan ampliamente en informes, facturas y documentos legales, lo que hace que la generación y manipulación de PDF sean esenciales para muchas aplicaciones. Al seleccionar una biblioteca, los factores clave a considerar incluyen:
IronPDF es una biblioteca comercial de PDF diseñada específicamente para desarrolladores .NET. Simplifica la generación, manipulación y conversión de PDFs, lo que la convierte en una de las bibliotecas más fáciles de usar en aplicaciones C#.
IronPDF es compatible con .NET Core, .NET Framework y .NET Standard, garantizando la compatibilidad en varios entornos .NET. Su alto nivel de compatibilidad multiplataforma lo convierte en una opción ideal para equipos que trabajan en diferentes entornos de aplicaciones, y se integra perfectamente con IDEs como Visual Studio. Además de su versión en .NET, IronPDF también está disponible en Java, Python y Node.js.
🔹 Características clave:
Relleno de Formularios y Extracción de Datos – Completar formularios interactivosFormularios PDFprogramáticamente y extraer datos de formularios.
📌 Mejor para: Desarrolladores que buscan una solución sencilla y todo en uno, sin la complicación de complementos adicionales o licencias complejas.
iText 7 es una biblioteca de PDF poderosa y flexible que proporciona amplias capacidades de manipulación de PDF, incluyendo la creación de documentos, encriptación y firma. Sin embargo, su biblioteca central no admite la conversión de HTML a PDF de forma nativa.
🔹 Características clave:
Gestión de Formularios PDF: Crear y editar AcroForms y Formularios XFA para formularios PDF interactivos.
📌 Mejor para: Desarrolladores que necesitan una solución PDF altamente personalizable y están dispuestos a comprar complementos adicionales para funciones extendidas.
Antes de profundizar en las características y sus ejemplos de código correspondientes, echemos primero un vistazo a una de las mayores diferencias funcionales entre IronPDF e iText 7, la conversión de HTML a PDF.
iText 7, por otro lado, requiere el complemento pdfHTML, que es una característica de pago bajo licencia comercial. Esto aumenta los costos para los desarrolladores que necesitan funcionalidad de web a PDF.
Diagrama de flujo de comparación HTML a PDF
📌 Conclusión: Si necesitas conversión de HTML a PDF, IronPDF es la solución más rentable ya que incluye esta función de serie.
IronPDF cuenta con un amplio conjunto de funciones para trabajar con documentos PDF. Estos van desde la creación de PDF hasta la manipulación y seguridad de PDF. Para obtener una idea más clara de la amplia gama de características que esta biblioteca ofrece, veremos algunas características clave seleccionadas.
Convertir contenido HTMLen documentos PDF de alta calidad con el potente motor de renderizado de IronPDF. El renderizador de IronPDF no simplemente convierte contenido HTML, sino que con él podrás mantener todo el estilo CSS original y la interactividad JavaScript.
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
pdf.SaveAs("HtmlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
pdf.SaveAs("HtmlToPdf.pdf");
}
}
Entrada HTML
Input HTML Content
Salida PDF
Salida HTML a PDF usando IronPDF
En este ejemplo de código, primero hemos creado una nueva instancia de ChromePdfRenderer
, lo que nos da acceso al potente motor de renderizado que IronPDF utiliza para renderizar HTML a PDF. A continuación, pasamos un archivo HTML al RenderHtmlFileAsPdf
()método, que a su vez renderiza el HTML en un PDF, almacenado en el objeto PdfDocument
. Finalmente, guardaremos el PDF en la ubicación de archivo especificada.
Para los desarrolladores que buscan convertir contenido de URL a PDFs, no busquen más allá de IronPDF. Con esta biblioteca, podrás crear documentos PDF con una precisión de píxeles perfecta mediante el uso del motor de renderizado ChromePdfRenderer, que mantendrá todo el estilo y los diseños originales al renderizar elURL a PDF. Para este ejemplo, utilizaremosesta URL, para demostrar cómo IronPDF puede manejar estilos CSS más complejos.
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("UrlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("UrlToPdf.pdf");
}
}
Salida de PDF:
URL a PDF de salida usando IronPDF
Al igual que en nuestro ejemplo de HTML a PDF, el primer paso para convertir cualquier URL a PDF usando IronPDF es primero crear una nueva instancia de ChromePdfRenderer
. Una vez que el método ha renderizado el contenido de la URL en formato PDF utilizando RenderUrlAsPdf
, guarda el PDF resultante en un nuevo objeto PdfDocument
antes de que utilicemos el método SaveAs
para guardar el PDF.
Asegúrate de la autenticidad de tu documento PDF aplicando unfirma digitala sus documentos PDF. Existen diferentes métodos que los desarrolladores podrían considerar para aplicar firmas digitales, como firmar digitalmente el PDF con un certificado seguro, agregar una imagen de una firma manuscrita a un PDF o estampar una imagen del certificado en el propio PDF.
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Create PdfSignature object
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign and save PDF document
sig.SignPdfFile("product_report.pdf");
}
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Create PdfSignature object
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign and save PDF document
sig.SignPdfFile("product_report.pdf");
}
}
Salida PDF
Salida de firma digital usando IronPDF
Para este ejemplo, hemos cargado nuestro objeto de certificado, creado una representación visual de la firma, o en nuestro caso la imagen de IronPDF, y creado un nuevo objeto PdfSignature
, que gestiona la firma del propio documento PDF. Por último, usamos el método SignPdfFile
para firmar y guardar nuestro documento PDF.
Si desea explorar más de las características que IronPDF tiene para ofrecer, asegúrese de consultar su informativopágina de características, o el Guías de Cómo Hacerloque contienen ejemplos de código detallados para cada característica.
iText7 ofrece una amplia gama de características para personalizar y mejorar tus documentos PDF. Con amplio soporte de formato para varios estándares PDF y manipulación avanzada de PDF, hay mucho contenido en esta biblioteca de PDF. Sin embargo, como se mencionó anteriormente, iText7 puede requerir paquetes adicionales para llevar a cabo ciertas tareas relacionadas con PDF, como HTML a PDF.
Aunque iText7 por sí solo no puede manejar la conversión de HTML a PDF, podemos utilizar pdfHTML, un complemento de pago que se encuentra bajo la licencia comercial de iText7, para convertir el archivo HTML que usamos en nuestro ejemplo de IronPDF en un documento PDF.
using iText.Html2pdf;
public class Program
{
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
pdf.Close();
}
}
}
using iText.Html2pdf;
public class Program
{
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
pdf.Close();
}
}
}
Salida PDF
iText7 HTML a PDF output
En este ejemplo, cargamos el archivo HTML y especificamos la ubicación del archivo para guardar el PDF renderizado. Luego, utilizando el método ConvertToPdf
, podemos convertir fácilmente el archivo HTML en un documento PDF.
Ahora, es momento de comparar cómo iText7 se mide frente a IronPDF cuando se trata de convertir URLs a PDF. Para esto, utilizaremos la misma URL exacta que antes para garantizar una comparación justa.
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Salida PDF
Conversión de URL a PDF con iText7
Como se ve aquí, el enfoque de iText7 para la conversión de URL a PDF es más manual y complejo. Primero, necesitamos descargar el contenido HTML desde la URL, antes de seguir pasos similares como se ve en el ejemplo de HTML a PDF para renderizar nuestro contenido de URL en un documento PDF y guardarlo. Como puedes ver en la imagen de salida, iText7 no pudo mantener mucho del estilo y diseño original, a diferencia de IronPDF.
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
public partial class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string? alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Convert BouncyCastle certificate to iText certificate
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
public partial class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string? alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Convert BouncyCastle certificate to iText certificate
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
Salida PDF
Salida de firma digital de iText7
Como puedes ver, aunque iText7 es capaz de firmar digitalmente documentos PDF, el proceso tiende a ser mucho más complejo que con IronPDF. Este código carga un certificado PFX y lo utiliza para firmar digitalmente un PDF. Extrae la clave privada y el certificado, configura el firmante y agrega una firma separada al PDF, luego guarda el documento firmado.
IronPDF es reconocido por su facilidad de uso y optimización para alto rendimiento, ofreciendo una API más sencilla que simplifica tareas comunes como la conversión de HTML a PDF. Proporciona métodos de alto nivel que abstraen tareas complejas de procesamiento de PDF, permitiendo a los desarrolladores generar, editar y manipular PDFs con un mínimo de código. Para el procesamiento de documentos en múltiples hilos o a gran escala, IronPDF admite la ejecución paralela.
iText 7, por otro lado, ofrece un nivel de control más detallado y granular, lo cual puede ser ventajoso para los desarrolladores que requieren una personalización extensa. Proporciona una API robusta para trabajar con operaciones PDF de bajo nivel. Sin embargo, debido a su complejidad, iText 7 a menudo requiere más código para lograr resultados similares en comparación con IronPDF.
Al seleccionar una biblioteca PDF para un proyecto .NET, las consideraciones de licencia y costo son críticas. Tanto IronPDF como iText 7 siguen diferentes modelos de licencia, y elegir el adecuado depende de los requisitos de tu proyecto, presupuesto y necesidades de cumplimiento.
IronPDF sigue un modelo de licencia comercial, lo que significa que, aunque ofrece una prueba gratuita para la licencia comercial y es gratuito para el desarrollo y evaluación, se requiere una licencia de pago para el uso completo en producción. El precio es transparente y depende de factores como la escala de uso, el número de desarrolladores y el tipo de proyecto.
🔹 Licencias de IronPDF:
✅ Ideal para empresas que necesitan una solución PDF simple y rentable.
📌 Conclusión: IronPDF incluye todas las características principales en una sola licencia, lo que lo convierte en una opción rentable para equipos y empresas.
iText7 opera bajo un modelo de licencia dual, que incluye:
AGPL(Licencia Pública General Affero de GNU)** – Gratis para proyectos de código abierto, pero requiere que todo el proyecto que utiliza iText7 sea de código abierto y cumpla con AGPL. Esto significa que cualquier modificación o adición realizada al proyecto también debe compartirse públicamente.
Licencia Comercial – Requerida para cualquier software propietario o aplicaciones comerciales que no deseen divulgar su código fuente. La estructura de precios varía según el uso, el nivel de soporte y la escala de implementación.
Para las empresas que deseen integrar iText 7 en software propietario, se requiere una licencia comercial. El costo puede ser significativo, especialmente para soluciones a nivel empresarial, ya que se cobra por desarrollador, pero proporciona acceso a soporte profesional y garantiza el cumplimiento legal.
🔹 Por qué iText 7 puede ser más caro:
Las funciones esenciales requieren complementos costosos:
📌 Conclusión: Si su equipo requiere múltiples desarrolladores y características clave como HTML-a-PDF y OCR, iText 7 puede ser significativamente más caro que IronPDF, que ofrece estas características sin costos adicionales.
Proyectos pequeños vs. empresariales
Para proyectos pequeños a medianos que requieren una rápida implementación de funcionalidades PDF con una configuración mínima, IronPDF es una opción atractiva debido a su API fácil de usar y su conjunto de características integrales. Los proyectos a nivel empresarial que requieren una amplia personalización y cumplimiento de normas específicas de PDF pueden beneficiarse de las capacidades avanzadas de iText7; sin embargo, IronPDF también resulta ser un fuerte candidato para este nivel de trabajo debido a su alto rendimiento, opciones de licencia y facilidad de uso.
Uso Académico y Comercial
En entornos académicos o proyectos de código abierto, la licencia AGPL de iText 7 permite su uso gratuito, siempre que la licencia del proyecto sea compatible. Para aplicaciones comerciales, tanto IronPDF como iText 7 requieren la compra de una licencia comercial. Es aconsejable revisar los términos de licencia de cada biblioteca para asegurar el cumplimiento con los objetivos de su proyecto.
Elegir la biblioteca PDF adecuada para tu proyecto .NET es una decisión crucial que depende de factores como la facilidad de uso, el conjunto de funciones y las necesidades de licencia. Tanto IronPDF como iText 7 ofrecen potentes capacidades para PDF, pero se adaptan a diferentes requisitos. Más allá de estas dos bibliotecas, competidores como Aspose, Syncfusion y PDFSharp ofrecen bibliotecas PDF para .NET competitivas. Sin embargo, IronPDF lidera consistentemente en la industria de PDFs con su API fácil de usar, su conjunto completo de características y su eficiencia en costos.
A continuación, hemos resumido un argumento convincente de por qué IronPDF es una excelente opción para todas sus necesidades de biblioteca PDF en .NET.
Resumen de la comparación IronPDF vs iText7
Si su proyecto requiere una generación rápida de PDF, especialmente a partir de contenido web, y está buscando una solución fácil de usar,IronPDFes probable que sea la mejor opción. Sin embargo, si su aplicación requiere manipulación avanzada de PDF o cumplimiento estricto con los estándares de PDF y necesita la flexibilidad para personalizar ampliamente,iText7podría ser la mejor opción. Considere los requisitos específicos de su proyecto y las restricciones de licencia para determinar la mejor biblioteca para sus necesidades.
🎯 Prueba IronPDF hoy: Descarga el prueba gratuitapara comenzar a explorar las potentes funciones de IronPDF por ti mismo!
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
10 productos API de .NET para sus documentos de oficina