Generación de PDF en C# (.NET): mejores bibliotecas y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generación de PDF en C# (.NET): revisión de bibliotecas y ejemplos prácticos



La generación de documentos PDF es una de las tareas más comunes en el desarrollo corporativo con C#. Informes, facturas, albaranes, contratos: todo esto se puede generar programáticamente. En el ecosistema .NET existen varias bibliotecas maduras, cada una con sus propias fortalezas. En este artículo analizaremos cuatro herramientas principales, mostraremos ejemplos de código y ayudaremos a elegir la adecuada para tu proyecto.



1. iTextSharp / iText 7 for .NET



iText es probablemente la biblioteca más conocida para trabajar con PDF. La versión iTextSharp fue un puerto de la biblioteca Java para .NET Framework. Actualmente, la versión vigente es iText 7 for .NET (licencia AGPL para proyectos de código abierto o comercial).



Capacidades:

  • Creación de PDF desde cero
  • Trabajo con plantillas (PdfTemplate)
  • Adición de imágenes, tablas, listas
  • Soporte para Unicode, cirílico
  • Firma digital, cifrado


Ejemplo: documento simple con tabla

using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;

public void CreateSimplePdf(string filePath){ using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document doc = new Document(pdf)) { doc.Add(new Paragraph("¡Hola, mundo!")); Table table = new Table(3); table.AddCell("Nombre"); table.AddCell("Edad"); table.AddCell("Ciudad"); table.AddCell("Ana"); table.AddCell("28"); table.AddCell("Madrid"); doc.Add(table); }}


2. PDFsharp / MigraDoc



PDFsharp es una biblioteca ligera de código abierto (MIT). Junto con MigraDoc permite describir documentos al estilo de un "procesador de textos": párrafos, estilos, encabezados y pies de página. Es ideal para generar informes simples sin gráficos complejos.



Ventajas:

  • Baja barrera de entrada
  • Buen soporte para cirílico
  • No requiere licencia
  • Funciona con .NET Framework y .NET Core


Ejemplo: creación de documento con MigraDoc

using MigraDoc.DocumentObjectModel;using MigraDoc.Rendering;

public void CreateWithMigraDoc(string filePath){ Document doc = new Document(); Section section = doc.AddSection(); Paragraph para = section.AddParagraph("Título del informe"); para.Format.Font.Size = 18; para.Format.Font.Bold = true; section.AddParagraph("Este es el texto del informe. Generado con PDFsharp y MigraDoc."); PdfDocumentRenderer renderer = new PdfDocumentRenderer(true); renderer.Document = doc; renderer.RenderDocument(); renderer.PdfDocument.Save(filePath);}


3. QuestPDF



QuestPDF es una biblioteca moderna con interfaz fluida (sintaxis similar a LINQ). Se distribuye bajo licencia MIT (gratuita para uso comercial). Está en desarrollo activo y es compatible con .NET 6/7/8.



Características clave:

  • Construcción declarativa del diseño
  • División automática en páginas
  • Soporte para imágenes, SVG, códigos QR
  • Alto rendimiento


Ejemplo: generación de factura

using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;

public byte[] GenerateInvoice(){ return Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(2, Unit.Centimetre); page.DefaultTextStyle(x => x.FontSize(12)); page.Header().Element(ComposeHeader); page.Content().Element(ComposeContent); page.Footer().AlignCenter().Text(x => {

Recommendations