Generación de informes PDF en C# (.NET) con iTextSharp y QuestPDF

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 informes PDF en C# (.NET): resumen de bibliotecas y ejemplos



En el desarrollo moderno en la plataforma .NET, la creación de documentos PDF es una de las tareas más comunes. Ya sea para generar facturas, informes, albaranes o paneles analíticos, C# proporciona potentes herramientas para trabajar con PDF. En este artículo, analizaremos tres bibliotecas populares: iTextSharp, QuestPDF y PdfSharp. Aprenderá cuál elegir para una tarea específica y verá ejemplos de código funcionales.



1. iTextSharp (iText 7 para .NET)



iTextSharp es un puerto de la popular biblioteca Java iText para .NET. Es la solución más madura y funcional, que admite diseños complejos, tablas, imágenes, anotaciones y firmas digitales. Sin embargo, el uso comercial requiere la compra de una licencia (AGPL para código abierto).



Instalación

dotnet add package itext7


Ejemplo: informe simple con tabla

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

public void CreatePdfReport(){ string filePath = "report.pdf"; using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document document = new Document(pdf)) { document.Add(new Paragraph("Informe de ventas de marzo") .SetBold().SetFontSize(18));

Table table = new Table(3); table.AddCell("Producto"); table.AddCell("Cantidad"); table.AddCell("Precio"); table.AddCell("Portátil"); table.AddCell("12"); table.AddCell("75 000 ₽"); table.AddCell("Monitor"); table.AddCell("5"); table.AddCell("32 000 ₽");

document.Add(table); }}


Ventajas: máxima flexibilidad, soporte para estructuras complejas, firmas digitales.
Desventajas: API compleja para principiantes, licencias para uso comercial.



2. QuestPDF



QuestPDF es una biblioteca moderna con interfaz fluida y motor de renderizado integrado. Permite describir el documento en un estilo declarativo, similar a HTML/CSS. Ideal para generar informes estándar con elementos repetitivos.



Instalación

dotnet add package QuestPDF


Ejemplo: factura con encabezado y tabla

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(20); page.Header().Text("Factura N.º 12345") .SemiBold().FontSize(20).FontColor(Colors.Blue.Darken2);

page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.RelativeColumn(); columns.RelativeColumn(); columns.RelativeColumn(); });

table.Header(header => { header.Cell().Background(Colors.Grey.Lighten3).Text("Servicio"); header.Cell().Background(Colors.Grey.Lighten3).Text("Coste"); header.Cell().Background(Colors.Grey.Lighten3).Text("Cant."); });

table.Cell().Text("Consultoría"); table.Cell().Text("5 000 ₽"); table.Cell().Text("2");

table.Cell().Text("Desarrollo"); table.Cell().Text("15 000 ₽"); table.Cell().Text("1"); });

page.Footer().AlignCenter().Text("¡Gracias por su colaboración!"); }); }).GeneratePdf();}


Ventajas: código simple y legible, excelente rendimiento, gratuito para uso comercial

Recommendations