PDF-Berichterstellung mit C# (.NET): Überblick über die besten Bibliotheken
Die Erstellung von PDF-Berichten ist eine der häufigsten Aufgaben in Unternehmensanwendungen mit C# (.NET). Ob Datenexport für Kunden, Rechnungserstellung oder ein komplexes Analyse-Dashboard – Sie benötigen ein zuverlässiges Werkzeug. In diesem Artikel betrachten wir drei wichtige Bibliotheken: iTextSharp (und seinen Nachfolger iText 7), QuestPDF und PDFsharp. Sie erfahren, welche Sie für welche Aufgabe wählen sollten, und sehen funktionierende Codebeispiele.
1. iTextSharp / iText 7 – Klassiker und Leistungsstark
iTextSharp ist ein Port der beliebten Java-Bibliothek iText für .NET. Version iText 7 (NuGet-Paket itext7) wurde komplett neu geschrieben und unterstützt eine moderne API. Die Bibliothek ermöglicht das Erstellen von PDFs von Grund auf, das Bearbeiten vorhandener PDFs sowie das Hinzufügen von Wasserzeichen, Formularen, Lesezeichen und Metadaten.
Hauptfunktionen:
- Vollständige Kontrolle über die Dokumentstruktur (Absätze, Tabellen, Bilder, Listen).
- Unterstützung für Schriftarten, einschließlich kyrillischer (TrueType).
- Arbeit mit Formularen (AcroForms) und digitalen Signaturen.
- Lizenz: AGPL (kommerzielle Nutzung erfordert Lizenzerwerb).
Beispiel: Erstellen eines einfachen Berichts mit Tabelle
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("Verkaufsbericht") .SetFontSize(20).SetBold());
Table table = new Table(3); table.AddCell("Produkt"); table.AddCell("Menge"); table.AddCell("Preis");
table.AddCell("Laptop"); table.AddCell("10"); table.AddCell("75000");
table.AddCell("Maus"); table.AddCell("50"); table.AddCell("1500");
document.Add(table); }}2. QuestPDF – Moderne und prägnante API
QuestPDF ist eine relativ junge Bibliothek (seit 2021), die schnell an Popularität gewinnt. Ihr Hauptmerkmal ist die Fluent API, die an die Arbeit mit HTML/CSS erinnert. Der Code ist lesbar und kompakt. QuestPDF ist für die kommerzielle Nutzung völlig kostenlos (MIT-Lizenz).
Besonderheiten:
- Deklarative Layoutbeschreibung: Container, Spalten, Zeilen.
- Integrierte Unterstützung für Stile, Farben, Rahmen und Hintergründe.
- Automatischer Textumbruch und Tabellenanpassung.
- Export in PDF und XPS.
Beispiel: Erstellen eines Berichts mit 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("Rechnung Nr. 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("Bezeichnung"); header.Cell().Text("Beschreibung"); header.Cell().Text("Betrag"); });
table.Cell().Text("Beratung"); table.Cell().Text("Architekturentwicklung"); table.Cell().Text Auch in der Bibliothek
Datenvalidierung in PHP: Leitfaden und Werkzeuge
WebSocket-Bibliotheken für TypeScript: ws und Socket.IO – vollständiger Leitfaden
CsvHelper für C# (.NET): Komplettguide mit Beispielen