PDF-Berichterstellung mit C# (.NET): iTextSharp, QuestPDF, PDFsharp

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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

Empfehlungen