USANDO IRON SUITE

Guía 2025: Mejores Bibliotecas PDF para C# (Gratis primero, pagado cuando sea necesario)

Cuando la mayoría de las personas piensan en el PDF (Formato de Documento Portátil), piensan en un archivo lleno de información. Y tienen razón, ya que actualmente, los PDFs son el formato de archivo más comúnmente utilizado para compartir información y se han convertido en un estándar. Pero cuando los programadores ven los PDFs, no solo ven información; analizan el formato, el tipo de contenido y otros aspectos técnicos.

Al crear archivos PDF mediante programación, mantener la estructura del contenido es la tarea más importante. Y no es una tarea tan simple como parece, porque cuando decimos contenido, no significa solo texto, incluye imágenes, gráficos, audios incluso videos. Además, la edición de PDFs mediante programación es un requisito común ahora.

En la era de la IA, queremos tener un control completo sobre los PDFs. A veces necesitamos redactar texto debido a alguna política, proteger los PDFs para asegurar los archivos sensibles, extraer datos para procesar o generar informes de manera dinámica. Hay muchos casos de uso para estos procesos. Estos son problemas comúnmente enfrentados por los desarrolladores al procesar archivos PDF mediante programación:

  1. Cómo mantener un diseño formateado para un documento PDF mientras se manejan todos los tipos de medios como contenido

  2. Extracción de texto en el orden correcto, especialmente si hay texto en columnas

  3. Limitaciones de memoria al procesar documentos PDF con muchas páginas

  4. El manejo de formularios es un problema importante enfrentado por los desarrolladores

  5. Conversión de archivos PDF a otros tipos de documentos adecuados

Para facilitar esta tarea, las bibliotecas de PDF entran en juego. In this article, we'll discuss multiple C# PDF libraries like IronPDF and Aspose.PDF, and their pricing models. Nos adentraremos en los casos de uso práctico y entenderemos cómo estas bibliotecas facilitan la creación y manipulación de PDFs mediante programación de forma sencilla y lista para producción en unos pocos pasos.

1. IronPDF: Biblioteca PDF para C

IronPDF es una biblioteca completa de .NET para PDFs que los desarrolladores pueden usar para crear, editar documentos PDF, convertir documentos PDF a cualquier otro formato y realizar muchas más operaciones con PDFs. Utiliza muy poca memoria mientras procesa archivos PDF grandes. Funciona completamente en tu máquina local, por lo que no dependes del procesamiento a nivel de servidor para trabajar con ella.

Esta biblioteca es compatible con el último .NET Framework también, y su integración con los proyectos .NET es muy fluida. Solo necesitas ejecutar el siguiente comando en el Gestor de paquetes NuGet, y IronPDF estará listo para usar en el proyecto:

using IronPdf; Install-Package IronPdf using IronPdf;

No necesitas instalar ninguna otra biblioteca, ya que es completamente independiente de las dependencias externas. Cuando instalas esta biblioteca, automáticamente instala todas las dependencias requeridas de una vez.

La característica más importante de IronPDF es su capacidad para convertir HTML a PDF con precisión perfecta en píxeles. IronPDF ofrece múltiples métodos para crear documentos PDF a partir de contenido HTML. Puedes convertir una cadena HTML, un archivo HTML o una URL directamente a PDF. También admite CSS y JavaScript para asegurar que los documentos PDF generados reflejan con precisión la representación HTML original.

Más allá de las operaciones básicas, IronPDF admite formularios PDF, cifrado a todos los niveles y la adición de firmas digitales. Puedes extraer imágenes y texto de archivos PDF. También puedes agregar encabezados y pies de página en texto o HTML, unir y dividir PDFs, modificar múltiples segmentos de texto y buscar y reemplazar texto. IronPDF no solo admite la creación de PDFs desde HTML, sino que también admite la conversión a PDF desde archivos DOCX, RTF, MD e imagen. Esta biblioteca es muy ligera y muy eficiente para la gestión de la memoria (Menos de 10MB de memoria requerida para operaciones básicas). IronPDF realiza un seguimiento de sus hitos en cuanto a estabilidad y rendimiento a los que puedes acceder aquí.

IronPDF ofrece múltiples niveles de soporte. Puedes contactar a los ingenieros a través de chat en vivo, creación de tickets o correo electrónico. El equipo de soporte está disponible 24/7. IronPDF también cuenta con tutoriales detallados y documentación que cubren casi todos los temas que podrías necesitar comprender o sobre los que podrías tener preguntas.

IronPDF es una biblioteca lista para producción que ha sido probada, optimizada y confiada por muchas compañías populares para sus productos en vivo. Esto la convierte en una de las mejores bibliotecas de PDF para usar en tus proyectos para operaciones con PDF. Veamos los ejemplos de código de la biblioteca IronPDF.

Ejemplos de Código

Convertir HTML a PDF

using IronPdf;cs using IronPdf; var renderer = new ChromePdfRenderer();

// 1. HTML String to PDF var pdf1 = renderer.RenderHtmlAsPdf("

Hello World

"); pdf1.SaveAs("html-string.pdf");

// 2. HTML String with Assets (Images, CSS, JS) var pdf2 = renderer.RenderHtmlAsPdf( "Logo related to Convertir HTML a PDF", @"C:\assets\" ); pdf2.SaveAs("html-with-assets.pdf");

// 3. HTML File to PDF var pdf3 = renderer.RenderHtmlFileAsPdf("example.html"); pdf3.SaveAs("html-file.pdf");

// 4. URL to PDF var pdf4 = renderer.RenderUrlAsPdf("https://ironpdf.com"); pdf4.SaveAs("url.pdf"); using IronPdf;

Extraer texto e imágenes de PDFs

using IronPdf;cs using IronPdf; using IronSoftware.Drawing; using System.Collections.Generic;

// Load PDF document var pdf = PdfDocument.FromFile("sample.pdf");

// 1. Extract All Text string allText = pdf.ExtractAllText();

// 2. Extract Text from Specific Page string pageText = pdf.ExtractTextFromPage(0);

// 3. Extract Text from Multiple Pages for (int i = 0; i < pdf.PageCount; i++) { string text = pdf.ExtractTextFromPage(i); Console.WriteLine($"Page {i + 1}: {text}"); }

// 4. Extract All Images var allImages = pdf.ExtractAllImages(); foreach (var image in allImages) { image.SaveAs($"image_{allImages.IndexOf(image)}.png"); }

// 5. Extract Images from Specific Page ListpageImages = pdf.ExtractBitmapsFromPage(0);

// 6. Extract Raw Images (as byte arrays) var rawImages = pdf.ExtractAllRawImages(); for (int i = 0; i < rawImages.Count; i++) { System.IO.File.WriteAllBytes($"rawimage{i}.png", rawImages[i]); }

// 7. Extract Both Text & Images from Each Page for (int i = 0; i < pdf.PageCount; i++) { string text = pdf.ExtractTextFromPage(i); Listimages = pdf.ExtractBitmapsFromPage(i);

Console.WriteLine($"Page {i + 1}: {text}");
Console.WriteLine($"Found {images.Count} images");

} using IronPdf;

Editar Documentos PDF: Encabezados y Pies de Página

using IronPdf;cs using IronPdf; using System; var renderer = new ChromePdfRenderer();

// 1. Add Footer with Page Numbers renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "

{page} of {total-pages}
", MaxHeight = 15, // mm DrawDividerLine = true }; renderer.RenderingOptions.MarginBottom = 25;

// 2. Add Header with Logo renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "Logo related to Editar Documentos PDF: Encabezados y Pies de Página", MaxHeight = 20, // mm BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri }; renderer.RenderingOptions.MarginTop = 25;

// 3. Render HTML to PDF var pdf = renderer.RenderHtmlAsPdf("

Document Title

Content...

"); pdf.SaveAs("output.pdf"); using IronPdf;

Manejo de formularios

using IronPdf;cs using IronPdf;

// Load existing PDF with form fields var pdf = PdfDocument.FromFile("EditableForm.pdf");

// Fill text fields pdf.Form.FindFormField("firstname").Value = "John"; pdf.Form.FindFormField("lastname").Value = "Smith"; pdf.Form.FindFormField("email").Value = "john.smith@example.com";

// Fill radio button pdf.Form.FindFormField("gender").Value = "Male";

// Fill dropdown/combobox pdf.Form.FindFormField("country").Value = "USA";

// Fill checkbox ("Yes" to check, "No" to uncheck) pdf.Form.FindFormField("subscribe").Value = "Yes";

// Fill textarea (use \r\n for line breaks) pdf.Form.FindFormField("comments").Value = "This is a comment.\r\nSecond line here.";

// Save filled form pdf.SaveAs("FilledForm.pdf"); using IronPdf;

Como puedes ver en los ejemplos anteriores, puedes realizar cualquier operación en un archivo PDF con solo unas pocas líneas usando IronPDF. Es muy simple y directo. Los nombres de los métodos son fáciles de entender e implementar.

Licencia

IronPDF es gratuito para usar con fines de desarrollo y también puedes descargar la prueba gratuita. Pero para la producción, necesitarás comprar una licencia para IronPDF. El modelo de licencias de IronPDF es flexible, ya que ofrece dos tipos de licencias:

  1. Licencia de Suscripción

  2. Licencia Perpetua

La Licencia de Suscripción te costará $59/mes (facturado anualmente), que incluye 1 desarrollador, 1 proyecto y 15,000 llamadas a API por año. Las llamadas a API adicionales cuestan $0.03 cada una después de que se excede tu cuota.

La Licencia Perpetua comienza en $749 y tiene múltiples opciones que puedes elegir según tus necesidades. La mejor parte de esta licencia es que es un pago único. No tienes que volver a pagar por usar IronPDF.

Csharp Pdf Libraries Tool 1 related to Licencia

2. Aspose.PDF para .NET

Aspose.PDF es también una biblioteca de PDF en C# desarrollada por Aspose como parte de su suite de bibliotecas .NET, que se usa ampliamente de forma comercial para tareas relacionadas con PDFs como crear informes complejos, documentos sensibles, personalizar documentos PDF y mucho más. Es una de las bibliotecas de PDF más comúnmente utilizadas para C#. También es compatible con el último .NET Framework.

Aspose.PDF puede crear documentos PDF no solo a partir del contenido HTML, sino que también admite la extracción de datos desde archivos XML para completar los datos reales en lugar de crear archivos estáticos. Esta característica es muy útil para crear informes complejos. Similar a IronPDF, puedes agregar texto, imágenes, gráficos y muchos otros tipos de contenido en archivos PDF. Aspose.PDF también ofrece la inserción de firmas digitales, manejo de anotaciones, encabezados y pies de página, y extracción de texto de los archivos PDF. Puedes extraer datos estructurados de un PDF. Esta biblioteca maneja muy bien la edición de PDFs mediante el uso de las características mencionadas.

Además de estas ventajas de la biblioteca Aspose.PDF, también hay múltiples contras. La principal desventaja de esta biblioteca es su precio muy alto (a partir de $1679), y su modelo de precios es muy complejo de entender. A diferencia de IronPDF, tienes que comprar el modelo para cada proceso por separado, como desarrollo y despliegue. Además, esta biblioteca consume muchos recursos (excediendo los 2GB al generar PDFs con más de 400 imágenes). Requiere mucha memoria para manejar las operaciones con PDFs, y es realmente frustrante. No hay duda de que esta biblioteca es buena en lo que hace, pero tiene una curva de aprendizaje muy pronunciada. Su código no es fácil de entender y requiere una sesión de aprendizaje muy detallada para entenderlo.

Ejemplo de código

Generar documentos PDF con Texto, Imágenes y Tablas

using IronPdf;cs using Aspose.Pdf; using Aspose.Pdf.Text;

using (var document = new Document()) { // Add page objects var page = document.Pages.Add();

// Add image - requires Rectangle positioning (You can add tiff images as well)
page.AddImage("logo.png", new Rectangle(20, 730, 120, 830));

// Add text - requires manual positioning
var header = new TextFragment("Company Report");
header.TextState.Font = FontRepository.FindFont("Arial");
header.TextState.FontSize = 24;
header.HorizontalAlignment = HorizontalAlignment.Center;
header.Position = new Position(130, 720);
page.Paragraphs.Add(header);

// Add table - extensive configuration required
var table = new Table
{
    ColumnWidths = "100 100 100",
    Border = new BorderInfo(BorderSide.Box, 1f, Color.Black),
    DefaultCellBorder = new BorderInfo(BorderSide.Box, 0.5f, Color.Gray),
    DefaultCellPadding = new MarginInfo(4.5, 4.5, 4.5, 4.5)
};

// Add header row
var headerRow = table.Rows.Add();
headerRow.Cells.Add("Name");
headerRow.Cells.Add("Age");
headerRow.Cells.Add("City");

// Style each header cell individually
foreach (Cell cell in headerRow.Cells)
{
    cell.BackgroundColor = Color.LightGray;
    cell.DefaultCellTextState.FontSize = 12;
}

// Add data row
var dataRow = table.Rows.Add();
dataRow.Cells.Add("John Doe");
dataRow.Cells.Add("30");
dataRow.Cells.Add("New York");

page.Paragraphs.Add(table);

// Save document
document.Save("Report.pdf");

} using IronPdf;

Puedes ver que el código requerido por Aspose.PDF para crear nuevos documentos PDF es muy complejo. Tienes que establecer manualmente cada coordenada en el código mismo. Tienes que estilizar manualmente cada elemento del objeto PDF, lo cual es muy lento y no eficiente. Sin embargo, proporciona un control granular sobre los documentos PDF.

Licencia

Aspose.PDF tiene múltiples opciones de licencias, pero la mayoría de ellas son pago por uso. El precio de la licencia comienza en $1679. Es muy costoso en comparación con las opciones de licencia de IronPDF (a partir de $749).

Csharp Pdf Libraries Tool 2 related to Licencia

3. iTextSuite para .NET

iTextSuite (conocido comúnmente como iText7 & iTextSharp) es el SDK para desarrollo de PDFs ofrecido por Apryse. Es una suite completa que tiene todas las herramientas necesarias que necesitamos para realizar operaciones con PDF en aplicaciones .NET. Similar a las bibliotecas anteriores, puedes crear, editar, redactar, cifrar y realizar muchas otras operaciones en documentos PDF.

iTextSuite maneja muy bien todas las tareas de creación y edición de PDFs, ya sea la creación de facturas simples o que involucren disposiciones complejas de informes sobre módulos financieros. Tampoco es pesado para el sistema de usar y puede trabajar sin problemas con documentos pesados. Procesa documentos rápidamente y te da salida sin retraso significativo.

Junto a todas estas buenas características, hay algunos inconvenientes del iTextSuite que también debes saber antes de considerar esta biblioteca. El costo de esta biblioteca es, según se informa, muy alto en comparación con las alternativas presentes en el mercado. Su precio original no está disponible en su página de precios. Tienes que contactar al soporte al cliente para obtener una cotización. También ofrecen una licencia AGPL de uso gratuito, pero esto requiere que hagas de tu producto un software de código abierto cuando utilices la iTextSuite con licencia AGPL. Similar a Aspose, también tiene una curva de aprendizaje pronunciada y no es amigable para principiantes. La manipulación avanzada de PDFs requiere un conocimiento detallado de PDF y la estructura de la biblioteca.

Ejemplo de código

Crear una Tabla de documento PDF con Estilos y Colores

using IronPdf;cs using iText.Kernel.Colors; using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Layout.Properties;

public void CreateStyledTable(string dest) { using var writer = new PdfWriter(dest); using var pdf = new PdfDocument(writer); var document = new Document(pdf);

// Create a 2-column table
Table table = new Table(2, false);

// Header cells with gray background
Cell cell11 = new Cell(1, 1)
    .SetBackgroundColor(ColorConstants.GRAY)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("State"));

Cell cell12 = new Cell(1, 1)
    .SetBackgroundColor(ColorConstants.GRAY)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("Capital"));

// Data cells
Cell cell21 = new Cell(1, 1)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("New York"));

Cell cell22 = new Cell(1, 1)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("Albany"));

Cell cell31 = new Cell(1, 1)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("New Jersey"));

Cell cell32 = new Cell(1, 1)
    .SetTextAlignment(TextAlignment.CENTER)
    .Add(new Paragraph("Trenton"));

// Add all cells to table
table.AddCell(cell11);
table.AddCell(cell12);
table.AddCell(cell21);
table.AddCell(cell22);
table.AddCell(cell31);
table.AddCell(cell32);

document.Add(table);
document.Close();

} using IronPdf;

A partir del ejemplo anterior, puedes entender la complejidad del código para iTextSuite. Aumenta el tiempo de desarrollo y la complejidad para construir grandes aplicaciones.

Licencia

iTextSuite ofrece dos modelos de licencia. Uno es comercial y el otro es una licencia AGPL. Puedes usar iTextSuite en producción de forma gratuita bajo la licencia AGPL, pero también tendrás que hacer de tu producto un código fuente abierto. Con respecto a la licencia comercial, no hay precio mencionado en la página de licencia. Deberás solicitar una cotización, o puedes contactar al soporte al cliente.

Csharp Pdf Libraries Tool 3 related to Licencia

4. PDFSharp

PDFSharp es una solución de código abierto en C# para los problemas con PDFs que enfrentan los desarrolladores al realizar operaciones con PDFs mediante programación. Admite los últimos frameworks .NET, incluido .NET Core. Es una solución ligera que cubre todas las necesidades básicas de un desarrollador respecto a PDFs.

PDFSharp puede manejar con facilidad la mayoría de las operaciones comunes con PDFs. Puedes crear documentos, insertar imágenes, dibujar formas y editar fuentes y tamaños de texto. Puedes poner cualquier cosa en cualquier posición, ya que PDFSharp te da control total sobre el PDF.

Sin embargo, PDFSharp tiene ciertas limitaciones que debes conocer. No admite la conversión de HTML a PDF de manera nativa, y es un gran inconveniente para los desarrolladores porque HTML hace que sea muy fácil estilizar y posicionar en PDFs. Su rendimiento se ve afectado cuando tiene que procesar múltiples archivos grandes. No puedes realizar operaciones complejas como encriptación y llenado de formularios. Y carece de canales de soporte oficiales. Solo dependes de la comunidad o de tus propias habilidades de resolución de problemas si enfrentas algún problema al trabajar con esta biblioteca.

Ejemplo de código

Crear un PDF con Múltiples Estilos de Texto

using IronPdf;cs using PdfSharp.Pdf; using PdfSharp.Drawing;

// Create document PdfDocument document = new PdfDocument(); PdfPage page = document.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(page);

// Example of different font styles XFont regularFont = new XFont("Arial", 12, XFontStyleEx.Regular); XFont boldFont = new XFont("Arial", 12, XFontStyleEx.Bold); XFont italicFont = new XFont("Arial", 12, XFontStyleEx.Italic); XFont boldItalicFont = new XFont("Arial", 12, XFontStyleEx.BoldItalic);

// Position for the first text double y = 50; double x = 50; double lineHeight = 20;

// Draw text in different styles - REQUIRES manual positioning gfx.DrawString("Regular text in Arial", regularFont, XBrushes.Black, x, y); y += lineHeight; gfx.DrawString("Bold text in Arial", boldFont, XBrushes.Black, x, y); y += lineHeight; gfx.DrawString("Italic text in Arial", italicFont, XBrushes.Black, x, y); y += lineHeight; gfx.DrawString("Bold and Italic text in Arial", boldItalicFont, XBrushes.Black, x, y);

// Save document document.Save("FormattedText.pdf"); using IronPdf;

PDFSharp sigue siendo una elección sólida para los desarrolladores que necesitan una solución ligera y gratuita para la generación básica de PDFs con control preciso de posicionamiento. Solo prepárate para rodear sus limitaciones o agregarlo con otras herramientas para requisitos más avanzados.

Licencia

PDFSharp se distribuye bajo la Licencia MIT y es completamente gratuito para usar. Solo necesitas incluir el aviso de copyright original y mencionar la licencia en tu distribución.

5. PDFPig

PDFPig es otra biblioteca de código abierto construida para desarrolladores .NET que te permite leer y extraer contenido de archivos PDF. Esta biblioteca extrae la posición y el tamaño de las letras individuales de documentos PDF. Recupera imágenes, lee anotaciones y formularios de PDF, accede a hiperenlaces y expone documentos incrustados. También puedes acceder a los metadatos del documento y ver la estructura interna del PDF.

La biblioteca se desempeña bien en comparación con herramientas similares de .NET y usa memoria de manera eficiente. Proporciona una alternativa sin costo a las opciones comerciales. Recibe actualizaciones regulares y mantiene documentación activa en GitHub.

La biblioteca tiene claras limitaciones que debes conocer. No convierte HTML ni otros formatos a PDF. No puede generar imágenes a partir de páginas PDF, aunque herramientas separadas como docnet o PDFtoImage pueden cubrir esa brecha. Los formularios PDF son solo de lectura; no puedes modificar o agregar valores de formularios. Para la extracción de tablas, necesitas herramientas externas como Tabula Sharp o Camelot Sharp. No puedes agregar o editar hiperenlaces al construir documentos. En comparación con bibliotecas más completas como IronPDF, PDFPig ofrece menos características y una documentación menos extensa.

Ejemplo de código

Extracción Básica de Texto

using IronPdf;cs using System; using System.Collections.Generic; using System.Linq; using UglyToad.PdfPig; using UglyToad.PdfPig.Content;

public static class Program { public static void Main() { using (PdfDocument document = PdfDocument.Open(@"C:\path\to\file.pdf")) { foreach (Page page in document.GetPages()) { // Extract all letters IReadOnlyListletters = page.Letters; string text = string.Join(string.Empty, letters.Select(x => x.Value));

            // Extract words
            IEnumerable<Word> words = page.GetWords();

            // Extract images
            IEnumerable<IPdfImage> images = page.GetImages();
        }
    }
}

} using IronPdf;

Licencia

PDFPig se distribuye bajo la Licencia Apache 2.0, que solo requiere que incluyas el aviso de copyright original y el texto de la licencia en tus distribuciones. Más allá de este requisito, eres completamente libre de usar esta biblioteca de cualquier manera.

Conclusión

En resumen, comparemos los modelos de precios y licencias de estas bibliotecas de PDF en C#.

IronPDF ofrece planes de precios flexibles adecuados tanto para individuos como para empresas. Es gratuito para fines de desarrollo e incluye una prueba gratuita. El precio es muy razonable, comenzando desde solo $749. Con su conjunto de características completo, excelente soporte y estabilidad lista para producción, IronPDF ofrece la mejor relación calidad-precio.

Aspose.PDF sigue un modelo de pago por uso con licencias que comienzan en $1679, y es significativamente más costoso que las alternativas. Aunque ofrece un control detallado, la pronunciada curva de aprendizaje y los altos costos pueden no ajustarse a todos los presupuestos.

iTextSuite no publica precios transparentes en su sitio web. Debes contactar a su equipo de soporte para obtener una cotización, lo que significa que los precios varían de caso por caso. Ofrecen una licencia AGPL de uso gratuito, pero esto requiere que hagas de tu producto un software de código abierto.

PDFSharp y PDFPig son completamente gratuitos bajo las licencias MIT y Apache 2.0, respectivamente. Sin embargo, su funcionalidad es limitada en comparación con las opciones comerciales. PDFSharp carece de conversión de HTML a PDF y tiene dificultades con archivos grandes, mientras que PDFPig es principalmente una biblioteca de solo lectura.

Elegir la biblioteca de PDF correcta depende de tus necesidades específicas y presupuesto. Si necesitas operaciones básicas y tienes conocimientos técnicos, las opciones de código abierto funcionan bien. Sin embargo, para aplicaciones extensas y funciones avanzadas que requieren características avanzadas, soporte confiable y documentación completa, IronPDF destaca como la solución más rentable y con más funciones completas.