PDF-Berichterstellung mit C# (.NET) mit iTextSharp und QuestPDF

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 Bibliotheken und Beispiele



In der modernen Entwicklung auf der .NET-Plattform ist die Erstellung von PDF-Dokumenten eine häufige Aufgabe. Ob es sich um die Erstellung von Rechnungen, Berichten, Lieferscheinen oder Analyse-Dashboards handelt, C# bietet leistungsstarke Werkzeuge für die Arbeit mit PDFs. In diesem Artikel betrachten wir drei beliebte Bibliotheken: iTextSharp, QuestPDF und PdfSharp. Sie erfahren, welche Sie für eine bestimmte Aufgabe auswählen sollten, und sehen funktionierende Codebeispiele.



1. iTextSharp (iText 7 für .NET)



iTextSharp ist ein Port der bekannten Java-Bibliothek iText für .NET. Es ist die ausgereifteste und funktionsreichste Lösung, die komplexe Layouts, Tabellen, Bilder, Annotationen und digitale Signaturen unterstützt. Die kommerzielle Nutzung erfordert jedoch den Erwerb einer Lizenz (AGPL für Open-Source).



Installation

dotnet add package itext7


Beispiel: Einfacher Bericht mit Tabelle

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

public void CreatePdfReport(){ string filePath = "report.pdf"; using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document document = new Document(pdf)) { document.Add(new Paragraph("Verkaufsbericht für März") .SetBold().SetFontSize(18));

Table table = new Table(3); table.AddCell("Produkt"); table.AddCell("Menge"); table.AddCell("Preis"); table.AddCell("Laptop"); table.AddCell("12"); table.AddCell("75.000 ₽"); table.AddCell("Monitor"); table.AddCell("5"); table.AddCell("32.000 ₽");

document.Add(table); }}


Vorteile: maximale Flexibilität, Unterstützung komplexer Strukturen, digitale Signaturen.
Nachteile: komplexe API für Anfänger, Lizenzierung für kommerzielle Nutzung.



2. QuestPDF



QuestPDF ist eine moderne Bibliothek mit einer fluent-Schnittstelle und einer integrierten Rendering-Engine. Sie ermöglicht die Beschreibung eines Dokuments in einem deklarativen Stil, ähnlich wie HTML/CSS. Ideal für die Generierung von Standardberichten mit sich wiederholenden Elementen.



Installation

dotnet add package QuestPDF


Beispiel: Rechnung mit Kopfzeile und Tabelle

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(20); page.Header().Text("Rechnung Nr. 12345") .SemiBold().FontSize(20).FontColor(Colors.Blue.Darken2);

page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.RelativeColumn(); columns.RelativeColumn(); columns.RelativeColumn(); });

table.Header(header => { header.Cell().Background(Colors.Grey.Lighten3).Text("Dienstleistung"); header.Cell().Background(Colors.Grey.Lighten3).Text("Kosten"); header.Cell().Background(Colors.Grey.Lighten3).Text("Anzahl"); });

table.Cell().Text("Beratung"); table.Cell().Text("5.000 ₽"); table.Cell().Text("2");

table.Cell().Text("Entwicklung"); table.Cell().Text("15.000 ₽"); table.Cell().Text("1"); });

page.Footer().AlignCenter().Text("Vielen Dank für die Zusammenarbeit!"); }); }).GeneratePdf();}


Vorteile: einfacher und lesbarer Code, hervorragende Leistung, kostenlos für kommerzielle Nutzung

Empfehlungen