PDF-Generierung in C# (.NET): Die besten Bibliotheken und Codebeispiele

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): Überblick über Bibliotheken und praktische Beispiele



Die Generierung von PDF-Dokumenten ist eine der häufigsten Aufgaben in der Unternehmensentwicklung mit C#. Berichte, Rechnungen, Lieferscheine, Verträge – all das lässt sich bequem programmatisch erstellen. Im .NET-Ökosystem gibt es mehrere ausgereifte Bibliotheken, jede mit ihren eigenen Stärken. In diesem Artikel betrachten wir vier grundlegende Werkzeuge, zeigen Codebeispiele und helfen Ihnen, die passende für Ihr Projekt auszuwählen.



1. iTextSharp / iText 7 for .NET



iText ist wohl die bekannteste Bibliothek für die Arbeit mit PDF. Die Version iTextSharp war ein Port der Java-Bibliothek für das .NET Framework. Aktuell ist iText 7 for .NET (Lizenz AGPL für Open-Source-Projekte oder kommerziell).



Funktionen:

  • PDF-Erstellung von Grund auf
  • Arbeit mit Vorlagen (PdfTemplate)
  • Hinzufügen von Bildern, Tabellen, Listen
  • Unterstützung von Unicode, Kyrillisch
  • Digitale Signatur, Verschlüsselung


Beispiel: Einfaches Dokument mit Tabelle

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

public void CreateSimplePdf(string filePath){ using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document doc = new Document(pdf)) { doc.Add(new Paragraph("Hallo, Welt!")); Table table = new Table(3); table.AddCell("Name"); table.AddCell("Alter"); table.AddCell("Stadt"); table.AddCell("Anna"); table.AddCell("28"); table.AddCell("Moskau"); doc.Add(table); }}


2. PDFsharp / MigraDoc



PDFsharp ist eine leichtgewichtige Open-Source-Bibliothek (MIT). In Kombination mit MigraDoc können Dokumente im Stil einer Textverarbeitung beschrieben werden: Absätze, Stile, Kopf- und Fußzeilen. Ideal für die Generierung einfacher Berichte ohne komplexe Grafiken.



Vorteile:

  • Niedrige Einstiegshürde
  • Gute Unterstützung für Kyrillisch
  • Keine Lizenzierung erforderlich
  • Funktioniert mit .NET Framework und .NET Core


Beispiel: Dokumenterstellung mit MigraDoc

using MigraDoc.DocumentObjectModel;using MigraDoc.Rendering;

public void CreateWithMigraDoc(string filePath){ Document doc = new Document(); Section section = doc.AddSection(); Paragraph para = section.AddParagraph("Berichtstitel"); para.Format.Font.Size = 18; para.Format.Font.Bold = true; section.AddParagraph("Dies ist der Berichtstext. Generiert mit PDFsharp und MigraDoc."); PdfDocumentRenderer renderer = new PdfDocumentRenderer(true); renderer.Document = doc; renderer.RenderDocument(); renderer.PdfDocument.Save(filePath);}


3. QuestPDF



QuestPDF ist eine moderne Bibliothek mit einer fließenden Oberfläche (Syntax ähnlich wie LINQ). Sie wird unter der MIT-Lizenz (kostenlos für die kommerzielle Nutzung) vertrieben. Sie wird aktiv weiterentwickelt und unterstützt .NET 6/7/8.



Wichtige Funktionen:

  • Deklarativer Layout-Aufbau
  • Automatischer Seitenumbruch
  • Unterstützung für Bilder, SVG, QR-Codes
  • Hohe Leistung


Beispiel: Rechnungsgenerierung

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(2, Unit.Centimetre); page.DefaultTextStyle(x => x.FontSize(12)); page.Header().Element(ComposeHeader); page.Content().Element(ComposeContent); page.Footer().AlignCenter().Text(x => {

Empfehlungen