Generación de informes PDF en C# (.NET): resumen de las mejores bibliotecas
La creación de informes PDF es una de las tareas más comunes en aplicaciones empresariales con C# (.NET). Ya sea para exportar datos para un cliente, generar una factura o un panel analítico complejo, necesitarás una herramienta confiable. En este artículo, analizaremos tres bibliotecas principales: iTextSharp (y su sucesor iText 7), QuestPDF y PDFsharp. Aprenderás cuál elegir para cada tarea específica y verás ejemplos de código funcionales.
1. iTextSharp / iText 7 — clásico y potente
iTextSharp es un puerto de la popular biblioteca Java iText para .NET. La versión iText 7 (paquete NuGet itext7) está completamente reescrita y admite una API moderna. La biblioteca permite crear PDF desde cero, editar existentes, agregar marcas de agua, formularios, marcadores y metadatos.
Características principales:
- Control total sobre la estructura del documento (párrafos, tablas, imágenes, listas).
- Soporte de fuentes, incluidas las cirílicas (TrueType).
- Trabajo con formularios (AcroForms) y firmas digitales.
- Licencia: AGPL (el uso comercial requiere la compra de una licencia).
Ejemplo: creación de un informe simple con tabla
using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;
public void CreateReport(string filePath){ using (var writer = new PdfWriter(filePath)) using (var pdf = new PdfDocument(writer)) using (var document = new Document(pdf)) { document.Add(new Paragraph("Informe de ventas") .SetFontSize(20).SetBold());
Table table = new Table(3); table.AddCell("Producto"); table.AddCell("Cantidad"); table.AddCell("Precio");
table.AddCell("Portátil"); table.AddCell("10"); table.AddCell("75000");
table.AddCell("Ratón"); table.AddCell("50"); table.AddCell("1500");
document.Add(table); }}2. QuestPDF — API moderno y conciso
QuestPDF es una biblioteca relativamente joven (desde 2021) que está ganando popularidad rápidamente. Su principal característica es una API fluida (Fluent API), similar a trabajar con HTML/CSS. El código resulta legible y compacto. QuestPDF es completamente gratuito para uso comercial (licencia MIT).
Características:
- Descripción declarativa del diseño: contenedores, columnas, filas.
- Soporte integrado para estilos, colores, bordes y fondos.
- Exportación a PDF y XPS.
Ejemplo: creación de un informe con QuestPDF
using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;
public void CreateInvoice(string filePath){ Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(2, Unit.Centimetre); page.DefaultTextStyle(x => x.FontSize(12));
page.Header().Text("Factura N.º 123") .SemiBold().FontSize(24).FontColor(Colors.Blue.Darken2);
page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.ConstantColumn(100); columns.RelativeColumn(); columns.ConstantColumn(80); });
table.Header(header => { header.Cell().Text("Nombre"); header.Cell().Text("Descripción"); header.Cell().Text("Importe"); });
table.Cell().Text("Consultoría"); table.Cell().Text("Desarrollo de arquitectura"); table.Cell().Text
También en la biblioteca
Recommendations