PDF-Generierung in C# (.NET): Überblick über Bibliotheken und Tools

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-Generierung in C# (.NET): Vollständiger Überblick über Bibliotheken und Tools



Die Erstellung von PDF-Dokumenten ist eine der häufigsten Aufgaben in der Unternehmensentwicklung. Berichte, Rechnungen, Lieferscheine, Verträge – all dies erfordert ein zuverlässiges Tool zur Generierung. Im C# (.NET)-Ökosystem gibt es mehrere leistungsstarke Bibliotheken, jede mit ihren eigenen Besonderheiten. In diesem Artikel analysieren wir die beliebtesten Optionen, ihre Vor- und Nachteile und geben Codebeispiele.



1. iTextSharp / iText 7 für .NET



iText ist der De-facto-Standard in der Welt der PDF-Generierung. Die Bibliothek existiert seit dem Jahr 2000 und wird aktiv weiterentwickelt. Für .NET ist die Version iText 7 verfügbar (NuGet-Paket itext7).



Funktionen:

  • Vollständige Kontrolle über den Inhalt: Text, Tabellen, Bilder, Anmerkungen.
  • Arbeit mit Formularen (AcroForms), digitalen Signaturen, Verschlüsselung.
  • Unterstützung für PDF/A (Archivierung).
  • Hohe Leistung.


Nachteile:

  • Komplexe API (niedrigschwellige Arbeit mit Koordinaten).
  • Für die kommerzielle Nutzung ist eine kostenpflichtige Lizenz erforderlich (AGPL für Open-Source).


Beispiel zur Erstellung eines einfachen PDFs:

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

public void CreatePdf(string filePath){ using (var writer = new PdfWriter(filePath)) using (var pdf = new PdfDocument(writer)) using (var document = new Document(pdf)) { document.Add(new Paragraph("Hallo, Welt!")); document.Add(new Paragraph("Dies ist ein PDF, erstellt mit iText 7.")); }}


2. PDFsharp



PDFsharp ist eine leichtgewichtige Open-Source-Bibliothek für .NET (es gibt auch eine Version für GDI+). Sie eignet sich hervorragend für einfache Aufgaben: Erstellung von Dokumenten mit Text, Tabellen, Bildern.



Funktionen:

  • Einfache und intuitive API.
  • Unterstützung für Schriftarten (einschließlich Kyrillisch).
  • Arbeit mit grafischen Primitiven (Linien, Formen).
  • Kostenlos (MIT-Lizenz).


Nachteile:

  • Eingeschränkte Unterstützung für komplexe Elemente (Formulare, Lesezeichen).
  • Langsamer als iText bei großen Datenmengen.


Beispiel:

using PdfSharp.Pdf;using PdfSharp.Drawing;

public void CreatePdf(string filePath){ using (var document = new PdfDocument()) { var page = document.AddPage(); using (var gfx = XGraphics.FromPdfPage(page)) { var font = new XFont("Arial", 20, XFontStyle.Regular); gfx.DrawString("Hallo, Welt!", font, XBrushes.Black, new XPoint(40, 100)); } document.Save(filePath); }}


3. QuestPDF



QuestPDF ist eine moderne Bibliothek mit einer fluent API, inspiriert vom Konzept "Layout-first". Sie ermöglicht es, die Dokumentstruktur deklarativ zu beschreiben, was die Erstellung komplexer Layouts erheblich vereinfacht.



Funktionen:

  • Deklarativer Stil (wie WPF oder HTML).
  • Automatischer Seitenumbruch (Pagination).
  • Unterstützung für Tabellen, Kopf- und Fußzeilen.
  • Kostenlose Version mit Einschränkung (bis zu 10 Seiten).


Nachteile:

  • Die kostenlose Version ist eingeschränkt.
  • Weniger Flexibilität als bei iText (schwierig, beliebige Grafiken zu zeichnen).


Beispiel:

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

public void CreatePdf(string filePath){ Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(30); page.Content().Column(col => { col.Item().Text("Hallo, Welt!").FontSize(20); col.Item().Text("Dies ist QuestPDF.").FontSize(14); }); });

Empfehlungen