PDF-Generierung in C# (.NET): Vollständiger Leitfaden zu Bibliotheken

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 die besten Bibliotheken



Die Generierung von PDF-Dokumenten ist eine häufige Aufgabe in Unternehmens- und Webanwendungen mit C#. Berichte, Rechnungen, Lieferscheine, Zertifikate – all das lässt sich bequem im PDF-Format erstellen. Im .NET-Ökosystem gibt es mehrere leistungsstarke Bibliotheken, sowohl kostenpflichtige als auch kostenlose. In diesem Artikel betrachten wir die beliebtesten Tools, ihre Funktionen und geben Codebeispiele.



Beliebte Bibliotheken für die Arbeit mit PDF in .NET



  • iTextSharp / iText 7 – eine der ältesten und funktionsreichsten Bibliotheken. Kostenpflichtige Version (iText 7) für die kommerzielle Nutzung, aber es gibt eine Legacy-Version iTextSharp unter LGPL.
  • PdfSharp / MigraDoc – kostenlose Open-Source-Bibliothek. Ideal geeignet für einfache Dokumente und Berichte.
  • QuestPDF – moderne Bibliothek mit fluent API. Kostenlos für die kommerzielle Nutzung (MIT-Lizenz). Ermöglicht die Erstellung komplexer Dokumente mit minimalem Code.
  • IronPDF – kostenpflichtige Bibliothek, aber mit sehr leistungsstarkem Funktionsumfang: Konvertierung von HTML in PDF, Arbeit mit Formularen, Passwortschutz.
  • SelectPdf – ein weiteres kostenpflichtiges Tool mit Unterstützung für HTML zu PDF und vielen Einstellungsmöglichkeiten.


Installation der Bibliotheken über NuGet



Alle Bibliotheken werden auf dem Standardweg über den Paketmanager NuGet installiert. Installationsbeispiele:



// Für PdfSharpInstall-Package PdfSharp

// Für QuestPDFInstall-Package QuestPDF

// Für iTextSharp (Legacy)Install-Package iTextSharp.LGPLv2.Core


Beispiel 1: PDF-Erstellung mit PdfSharp



PdfSharp ist eine ausgezeichnete Wahl für einfache Aufgaben. Nachfolgend ein Beispiel zur Erstellung eines Dokuments mit Text und Tabelle:



using PdfSharp.Pdf;using PdfSharp.Drawing;

class Program{ static void Main() { // Neues PDF-Dokument erstellen PdfDocument document = new PdfDocument(); PdfPage page = document.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(page);

// Text zeichnen XFont font = new XFont("Arial", 14); gfx.DrawString("Hallo, PDF-Welt!", font, XBrushes.Black, new XRect(10, 10, page.Width, page.Height), XStringFormats.TopLeft);

// Dokument speichern document.Save("HelloWorld.pdf"); Console.WriteLine("PDF erstellt!"); }}


Beispiel 2: Berichtsgenerierung mit QuestPDF



QuestPDF bietet eine elegante Fluent API. Erstellen wir eine einfache Rechnung:



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

class Program{ static void Main() { 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("Seite {0} von {1}", x => x.CurrentPageNumber(), x => x.TotalPages()); }); }).GeneratePdf("Invoice.pdf");

Console.WriteLine("Rechnung erstellt!"); }

static void ComposeHeader(IContainer container) { container.Row(row => { row.RelativeItem().Column(column => { column.Item().Text("RECHNUNG").Bold().FontSize(20); column.Item().Text($"Datum: {DateTime.Now:dd.MM.yyyy}"); }); row.ConstantItem(100).Image(Placeholders.Image(100, 100)); }); }

static void ComposeContent(IContainer container) { container.Table(table => { // Tabellenüberschriften table.ColumnsDefinition(columns =>

Empfehlungen