Die versteckten Kosten von kostenlosen PDF-Bibliotheken in C#
Entwickler, die nach einer "kostenlosen PDF-Bibliothek C#" suchen, werden Dutzende von NuGet-Paketen finden, die ihr Problem scheinbar zum Nulltarif lösen. In der Praxis ist jede "kostenlose" Option im .NET-PDF-Bereich mit Einschränkungen verbunden, die erst nach Beginn der Entwicklung auftauchen - Offenlegung des AGPL-Quellcodes, fehlende HTML-Unterstützung, aufgegebene Abhängigkeiten mit ungepatchten CVEs oder Umsatzschwellen, die eine Zwangslizenzierung auslösen. Dieser Artikel dokumentiert diese Einschränkungen mit konkreten Belegen, damit Sie die tatsächlichen Kosten abschätzen können, bevor Sie sich festlegen.
Was bedeutet "kostenlos" im gesamten .NET PDF-Ökosystem
Das Wort "kostenlos" steht für fünf verschiedene Lizenzmodelle in diesem Bereich, und diese zu verwechseln, birgt echte rechtliche und technische Risiken:
MIT/Apache (wirklich freizügig): PdfSharpverwendet die MIT-Lizenz. Keine Umsatzbeschränkungen, kein Copyleft, keine Offenlegungspflichten. Sie können sie in kommerzieller Software ohne Bedingungen ausliefern. Der Kompromiss ist die Fähigkeit, nicht die Lizenzierung.
AGPL (Open Source mit Zähnen): iTextSharp(iText Core) verwendet die AGPL. Wenn Ihre Anwendung über ein Netzwerk zugänglich ist - dazu gehören alle Webanwendungen, APIs und SaaS-Produkte - müssen Sie den gesamten Quellcode Ihrer Anwendung unter der AGPL veröffentlichen. Nicht nur der PDF-Generierungscode. Ihre proprietäre Geschäftslogik, Ihr Authentifizierungssystem, alles.
Umsatzabhängige Community-Lizenz: Die Community-Lizenz von QuestPDF deckt Unternehmen mit einem jährlichen Bruttoumsatz von weniger als 1 Million US-Dollar ab. Wenn Sie diese Schwelle überschreiten, wird eine kommerzielle Lizenz erforderlich, unabhängig davon, wie oft Sie QuestPDF tatsächlich nutzen.
Aufgegeben und nicht gewartet: wkhtmltopdf und seine .NET-Wrapper (DinkToPdf, NReco.PdfGenerator) werden nicht aktiv weiterentwickelt. Die GitHub-Organisation wurde im Juli 2024 archiviert. Bekannte CVEs werden nie gepatcht.
Kostenlos, aber teuer im Betrieb: Puppeteer Sharp und Playwright sind MIT-lizenziert, aber sie erfordern die Verwaltung externer Browserprozesse - Downloads, Prozess-Pooling, Überwachung von Speicherlecks, Wiederherstellung bei Abstürzen. Die Kosten für die Infrastruktur können die Kosten für eine kommerzielle Lizenz übersteigen.
iTextSharpund die AGPL-Falle
iTextSharp ist eines der am häufigsten heruntergeladenen PDF-Pakete auf NuGet, mit ungefähr 30 Millionen Downloads. Viele Entwickler installieren es in der Annahme, dass es für die kommerzielle Nutzung kostenlos ist. Das ist sie nicht.
Die Lizenzierungsrealität
Im Jahr 2009 wechselte iText von der LGPL zur AGPL. Unter der AGPL erfordert der Einsatz von iText in einer über das Netzwerk zugänglichen Anwendung, dass Sie den gesamten Quellcode Ihrer Anwendung unter den Bedingungen der AGPL freigeben. in der Dokumentation von iText heißt es: "Sie dürfen es nicht in einem Netzwerk einsetzen, ohne den vollständigen Quellcode Ihrer eigenen Anwendungen unter der AGPL-Lizenz offenzulegen."
Dies ist keine theoretische Aufgabe. Sie gilt für Ihre Webanwendung, Ihre internen Tools, die über ein Netzwerk bereitgestellt werden, Ihr SaaS-Produkt und Ihre Kundenprojekte.
Aktive Durchsetzung
iText und die Muttergesellschaft Apryse achten streng auf die Einhaltung der Lizenzbestimmungen. Eine Analyse von Beeman & Muchmore vom September 2025 dokumentierte das Durchsetzungsmuster und stellte fest, dass das Unternehmen "um die Zeit seines Rebrandings im Februar 2023 eine Blitzeinstellung in seiner Abteilung für die Einhaltung der Lizenzbestimmungen vornahm" Die Anwaltskanzlei bezeichnete diese Praktiken als ähnlich dem Patent-Trolling - Unternehmen, die "Patentportfolios aufkaufen und sie wahllos für Verteidigungskosten/Unterlassungserklärungen geltend machen"
iText selbst hat diese Haltung anerkannt und erklärt, dass rechtliche Schritte nur selten erforderlich sind, weil "die beteiligten Personen verstanden haben, dass es nicht in ihrem Interesse ist, verklagt zu werden."
Das Schlupfloch der alten Version funktioniert nicht
Einige Entwickler testen iTextSharp4.1.6, das unter der LGPL veröffentlicht wurde. iText's FAQ spricht dies explizit an: Diese Versionen sind veraltet und haben keine Sicherheits-Patches mehr, und die API ist älter als die modernen PDF-Anforderungen.
Was die kommerzielle Lizenzierung kostet
Für Unternehmen, die die AGPL nicht einhalten können, bietet iText kommerzielle Lizenzen an. Ab 2024 stellt iText auf eine abonnementbasierte Lizenzierung um und löst sich damit von unbefristeten Modellen. Die Preise werden nicht veröffentlicht - für ein Angebot wenden Sie sich bitte an den Vertrieb. Nach Angaben von Drittanbietern bei Vendr liegen die Kosten je nach Nutzungsvolumen zwischen 15.000 und 210.000 US-Dollar pro Jahr.
Vergleichen Sie das mit der unbefristeten Lizenz von IronPDF, die bei 749 US-Dollar beginnt, wobei die Preise auf der Website veröffentlicht werden und kein Jahresabonnement für die weitere Nutzung erforderlich ist.
Was das HTML-Rendering von iText tatsächlich produziert
Das pdfHTML-Add-on verwendet keine Browser-Engine. So sieht es aus, wenn Sie modernes CSS ausprobieren:
using iText.Html2pdf;
using iText.Kernel.Pdf;
// This HTML uses CSS Flexbox — a standard layout technique since 2015
string html = @"
<html><head><style>
.container { display: flex; gap: 20px; justify-content: space-between; }
.card { flex: 1; padding: 15px; border: 1px solid #ccc; border-radius: 8px; }
</style></head>
<body>
<div class='container'>
<div class='card'>Revenue: $1.2M</div>
<div class='card'>Expenses: $890K</div>
<div class='card'>Profit: $310K</div>
</div>
</body></html>";
using var writer = new PdfWriter("itext-output.pdf");
using var pdf = new PdfDocument(writer);
// Result: three cards stacked vertically, no flex layout applied
// The gap, border-radius, and justify-content are ignored
HtmlConverter.ConvertToPdf(html, pdf, new ConverterProperties());
using iText.Html2pdf;
using iText.Kernel.Pdf;
// This HTML uses CSS Flexbox — a standard layout technique since 2015
string html = @"
<html><head><style>
.container { display: flex; gap: 20px; justify-content: space-between; }
.card { flex: 1; padding: 15px; border: 1px solid #ccc; border-radius: 8px; }
</style></head>
<body>
<div class='container'>
<div class='card'>Revenue: $1.2M</div>
<div class='card'>Expenses: $890K</div>
<div class='card'>Profit: $310K</div>
</div>
</body></html>";
using var writer = new PdfWriter("itext-output.pdf");
using var pdf = new PdfDocument(writer);
// Result: three cards stacked vertically, no flex layout applied
// The gap, border-radius, and justify-content are ignored
HtmlConverter.ConvertToPdf(html, pdf, new ConverterProperties());
Imports iText.Html2pdf
Imports iText.Kernel.Pdf
' This HTML uses CSS Flexbox — a standard layout technique since 2015
Dim html As String = "
<html><head><style>
.container { display: flex; gap: 20px; justify-content: space-between; }
.card { flex: 1; padding: 15px; border: 1px solid #ccc; border-radius: 8px; }
</style></head>
<body>
<div class='container'>
<div class='card'>Revenue: $1.2M</div>
<div class='card'>Expenses: $890K</div>
<div class='card'>Profit: $310K</div>
</div>
</body></html>"
Using writer As New PdfWriter("itext-output.pdf")
Using pdf As New PdfDocument(writer)
' Result: three cards stacked vertically, no flex layout applied
' The gap, border-radius, and justify-content are ignored
HtmlConverter.ConvertToPdf(html, pdf, New ConverterProperties())
End Using
End Using
Die Ausgabe stapelt die Karten vertikal und hat kein flexibles Layout. Die Eigenschaften gap, border-radius, und justify-content werden ignoriert. Dies ist der Stand des HTML-Renderings von iText - es nähert sich CSS 2.1 an, führt aber weder Flexbox noch Grid oder JavaScript aus.
IronPDF rendert dies korrekt, da es eingebettetes Chromium verwendet - die gleiche Engine wie Chrome. Die Ausgabe entspricht dem, was Sie im Browser sehen:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html); // Same HTML as above
pdf.SaveAs("ironpdf-output.pdf");
// Result: three cards in a horizontal row with proper spacing and rounded corners
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html); // Same HTML as above
pdf.SaveAs("ironpdf-output.pdf");
// Result: three cards in a horizontal row with proper spacing and rounded corners
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html) ' Same HTML as above
pdf.SaveAs("ironpdf-output.pdf")
' Result: three cards in a horizontal row with proper spacing and rounded corners
PdfSharp: Wirklich kostenlos, wirklich eingeschränkt
PdfSharp ist MIT-lizenziert und unterliegt keinen Einschränkungen. Über 34,9 Millionen NuGet-Downloads. Für die kommerzielle Nutzung ist der Text kostenlos und ohne Bedingungen. Der Kompromiss ist, was sie kann.
Kein HTML-Rendering - überhaupt nicht
PdfSharp bietet eine Zeichen-API. Sie rufen DrawString(), DrawRectangle(), und DrawImage() mit expliziten Koordinaten auf. Es gibt keinen HTML-Parser, keine CSS-Engine und kein Vorlagensystem. Wenn Ihre Anwendung PDFs aus HTML-Vorlagen erzeugt - Rechnungen aus Razor-Ansichten, Berichte aus Dashboard-HTML, E-Mail-zu-PDF-Archivierung - kann PdfSharpdies nicht leisten.
Der allgemein vorgeschlagene Workaround, HtmlRenderer.PdfSharp, unterstützt nur HTML 4.01 und CSS Level 2. Kein Flexbox. Kein Raster. Kein JavaScript. Keine Web-Schriftarten. Wenn Ihr HTML irgendeine CSS-Funktion aus dem letzten Jahrzehnt verwendet, wird es nicht gerendert.
Wo PdfSharp arbeitet
PdfSharp eignet sich gut für die Erzeugung strukturierter Dokumente aus Daten - Rechnungen mit programmatischen Layouts, einfache Berichte, PDF-Zusammenführung und -Splitting, Wasserzeichen und Anmerkungen. Wenn Sie kein HTML-Rendering benötigen und Ihr Zielsystem Windows ist, bleibt dies eine legitime Option.
QuestPDF: Kostenlos, bis Ihr Unternehmen wächst
QuestPDF bietet eine elegante, fließende C#-API für die programmgesteuerte Erstellung von Dokumenten. Das API-Design ist wirklich gut. Das Lizenzierungsmodell schafft eine Klippe.
Die Umsatzschwelle
Die Community-Lizenz von QuestPDF gilt für Einzelpersonen, Unternehmen mit einem Jahresbruttoumsatz von weniger als 1 Million Dollar, gemeinnützige Organisationen und Open-Source-Projekte. Sobald Ihr Unternehmen einen Umsatz von 1 Million Dollar erreicht, ist eine kommerzielle Lizenz erforderlich, unabhängig davon, wie intensiv Sie QuestPDF nutzen.
Als Wachstumsszenario sieht das folgendermaßen aus: Ein Startup-Unternehmen, das jährlich 900.000 $ erwirtschaftet, nutzt QuestPDF kostenlos. Für 1.000.001 $ benötigen sie eine Gewerbe-Lizenz. Wenn sie kein Budget dafür eingeplant haben, stehen sie vor der Wahl, entweder für die Lizenz zu bezahlen oder unter Zeitdruck auf eine andere Bibliothek umzusteigen. Beide Optionen sind nicht kostenlos.
Unternehmen, die sich dieser Schwelle nähern, müssen dies bei ihrer Planung berücksichtigen. Es ist keine Überraschung, wenn Sie die Lizenzbedingungen lesen, aber viele Teams entdecken es, nachdem die Bibliothek in ihre Codebasis eingebettet ist.
Keine HTML-Unterstützung - absichtlich
QuestPDF rendert kein HTML. Dies ist eine bewusste Designentscheidung und keine fehlende Funktion. Die Positionierung der Bibliothek lautet "Schluss mit der HTML-zu-PDF-Konvertierung" - sie ersetzt HTML-Ansätze durch programmatischen C#-Code.
Trotz dieser klaren Positionierung gehen Entwickler regelmäßig davon aus, dass QuestPDF HTML verarbeitet, da es in den Suchergebnissen für "C#-PDF-Bibliotheken" neben HTML-fähigen Bibliotheken erscheint. GitHub-Diskussionen von 2022 bis 2024 zeigen, dass Entwickler diese Einschränkung erst nach Beginn der Implementierung entdecken. Die Betreuer bestätigen immer wieder, dass HTML-Unterstützung nicht geplant ist.
wkhtmltopdf Wrappers: Aufgegeben With Unpatched CVEs
wkhtmltopdf war ein beliebtes Befehlszeilentool für die Umwandlung von HTML in PDF. Es gibt mehrere C#-Wrapper: DinkToPdf, NReco.PdfGenerator, WkHtmlToXSharp. Alle verpacken das gleiche verlassene Binärprogramm.
Der Status
Die GitHub Organisation wurde am 10. Juli 2024 archiviert. Die wkhtmltopdf-Statusseite kennzeichnet das Projekt als veraltet. Homebrew hat am 16. Dezember 2024 das Fass zum Überlaufen gebracht. Die zugrunde liegende QtWebKit-Engine wurde 2015 von Qt veraltet und 2016 entfernt.
Kritische Sicherheitslücken - für immer ungepatched
CVE-2022-35583 (CVSS 9.8 Kritisch): Server-Side Request Forgery. Ein Angreifer fügt ein iframe-Tag in den von wkhtmltopdf verarbeiteten HTML-Inhalt ein. Der iframe zielt auf http://169.254.169.254/latest/meta-data/ - den AWS EC2-Metadaten-Endpunkt. Die gerenderte PDF-Datei enthält die Antwort, die auch die IAM-Anmeldedaten enthält.
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"
style="width:100%;height:500px;"></iframe>
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"
style="width:100%;height:500px;"></iframe>
CVE-2020-21365 (CVSS 7.5 High): Verzeichnisüberwindung, die es entfernten Angreifern ermöglicht, lokale Dateien durch manipuliertes HTML zu lesen.
Diese Sicherheitslücken sind dokumentiert, können öffentlich ausgenutzt werden und werden nie gepatcht. Der Einsatz von wkhtmltopdf in der Produktion - insbesondere bei der Verarbeitung von HTML-Daten, die von Benutzern übermittelt wurden - schafft eine konkrete, ausnutzbare Angriffsfläche.
Rendering-Qualität
Abgesehen von den Sicherheitsaspekten ist die QtWebKit-Engine von wkhtmltopdf ungefähr auf dem Stand von Safari 2011 eingefroren. Keine CSS Flexbox, kein CSS Grid, begrenzte CSS3-Unterstützung, unzuverlässige JavaScript-Ausführung. Inhalte, die in modernen Browsern korrekt angezeigt werden, werden durch wkhtmltopdf nicht korrekt wiedergegeben.
Der wahre Preis von "kostenlos"
Entwicklerzeit ist der größte Kostenfaktor
Ein Team, das mit der fehlenden HTML-Unterstützung von PdfSharpzu kämpfen hat - manuelle Positionierung jedes Elements mit koordinatenbasierten Zeichenbefehlen für Layouts, die in 20 Zeilen HTML/CSS ausgedrückt werden könnten - verbrennt Entwicklerzeit, die einen messbaren Preis hat.
Eine vorsichtige Schätzung: 2 Entwicklertage pro Monat für die Pflege von Workarounds und manuellen Layouts bei 150 USD/Stunde kosten 28.800 USD pro Jahr. Die Unternehmenslizenz von IronPDF kostet weniger als das. Die "kostenlose" Bibliothek kostet mehr an Entwicklerproduktivität, als die kommerzielle Alternative an Lizenzkosten verursacht.
Dies ist nicht nur bei PdfSharpder Fall. Teams, die die Browser-Prozesse von Puppeteer Sharp verwalten - das Schreiben von Pooling-Logik, die Überwachung von Speicherlecks und die Wiederherstellung bei Abstürzen - zahlen in Entwicklungszeit, was sie bei der Lizenzierung eingespart haben.
Technische Schuldkomplexe
Eine Analyse von Quandary Peak Research vom Dezember 2025 bringt es auf den Punkt: "Das 'kostenlose' Preisschild von Open Source ist eine falsche Bezeichnung, die erhebliche versteckte Kosten und potenzielle Verbindlichkeiten verschleiert."
Jeder Workaround für eine fehlende Funktion fügt Code hinzu, der gewartet, getestet und migriert werden muss, wenn sich die Anforderungen ändern. Der CISQ-Bericht aus dem Jahr 2022 ergab, dass sich die kumulierten technischen Software-Schulden in den USA auf 1,52 Billionen US-Dollar belaufen. PDF-Bibliotheks-Workarounds tragen jedes Mal zu dieser Zahl bei, wenn ein Team koordinatenbasierten Layout-Code schreibt, anstatt eine HTML-Vorlage zu verwenden.
Sicherheitslücken haben ihren Preis
Industriedaten zeigen, dass 82 % der Open-Source-Komponenten veraltet sind, 75 % der Codebasen Schwachstellen enthalten und 49 % hochriskante Schwachstellen aufweisen. Insbesondere PDF-Bibliotheken bergen ein erhöhtes Risiko, da sie vom Benutzer bereitgestellte Inhalte verarbeiten und mit Serverrechten ausgeführt werden.
Die Sicherheitslücke bei Equifax - 147 Millionen Datensätze wurden offengelegt - resultierte aus einer ungepatchten Sicherheitslücke in einer Open-Source-Komponente. Die finanziellen Auswirkungen beliefen sich auf über 1,4 Milliarden Dollar. Der Angriffsvektor war dieselbe Klasse von Schwachstellen (Verarbeitung von nicht vertrauenswürdigen Eingaben durch eine nicht gewartete Bibliothek), für die die CVEs von wkhtmltopdf stehen.
Migration ist teurer als der erste Schritt
Mit einer begrenzten kostenlosen Bibliothek zu beginnen und später zu migrieren, kostet mehr als die Auswahl einer geeigneten Bibliothek zu Beginn. Die Migration umfasst das Erlernen neuer APIs, das Neuschreiben von PDF-Generierungscode, die Neuerstellung von Vorlagen in verschiedenen Formaten, Regressionstests für jeden Dokumententyp und die Validierung der Ausgabe in nachgelagerten Systemen. Teams, die im ersten Jahr 0 US-Dollar für PDF-Werkzeuge einplanen, geben im zweiten Jahr oft mehr als 50.000 US-Dollar für die Migration aus.
Wie IronPDF diese Beschränkungen beseitigt
Als ich die Architektur von IronPDF entworfen habe, ging es bei der Entscheidung, Chromium einzubinden, nicht darum, die neueste Technologie zu haben - es ging darum, den Entwicklern Ergebnisse zu liefern, die dem entsprechen, was sie in ihrem Browser sehen. CSS Flexbox funktioniert. CSS Grid funktioniert. JavaScript wird ausgeführt. Web-Schriften rendern. Sie schreiben HTML und CSS, und die PDF-Ausgabe entspricht Chrome.
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<style>
.dashboard { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.metric { padding: 20px; background: #f8f9fa; border-radius: 8px; text-align: center; }
.metric h3 { margin: 0; color: #6c757d; font-size: 0.85rem; }
.metric .value { font-size: 2rem; font-weight: bold; color: #212529; }
</style>
</head>
<body>
<div class='dashboard'>
<div class='metric'><h3>Revenue</h3><div class='value'>$1.2M</div></div>
<div class='metric'><h3>Users</h3><div class='value'>45,230</div></div>
<div class='metric'><h3>Uptime</h3><div class='value'>99.97%</div></div>
</div>
</body>
</html>");
pdf.SaveAs("dashboard.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<style>
.dashboard { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.metric { padding: 20px; background: #f8f9fa; border-radius: 8px; text-align: center; }
.metric h3 { margin: 0; color: #6c757d; font-size: 0.85rem; }
.metric .value { font-size: 2rem; font-weight: bold; color: #212529; }
</style>
</head>
<body>
<div class='dashboard'>
<div class='metric'><h3>Revenue</h3><div class='value'>$1.2M</div></div>
<div class='metric'><h3>Users</h3><div class='value'>45,230</div></div>
<div class='metric'><h3>Uptime</h3><div class='value'>99.97%</div></div>
</div>
</body>
</html>");
pdf.SaveAs("dashboard.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("
<html>
<head>
<style>
.dashboard { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.metric { padding: 20px; background: #f8f9fa; border-radius: 8px; text-align: center; }
.metric h3 { margin: 0; color: #6c757d; font-size: 0.85rem; }
.metric .value { font-size: 2rem; font-weight: bold; color: #212529; }
</style>
</head>
<body>
<div class='dashboard'>
<div class='metric'><h3>Revenue</h3><div class='value'>$1.2M</div></div>
<div class='metric'><h3>Users</h3><div class='value'>45,230</div></div>
<div class='metric'><h3>Uptime</h3><div class='value'>99.97%</div></div>
</div>
</body>
</html>")
pdf.SaveAs("dashboard.pdf")
Dabei werden CSS-Gitter, border-radius, benutzerdefinierte Schriftgrößen und semantisches HTML verwendet. PdfSharpkann es nicht parsen. QuestPDF kann es nicht parsen. pdfHTML von iText rendert den Text als vertikalen Stapel. wkhtmltopdf ignoriert das Raster vollständig. IronPDF erstellt ein dreispaltiges Dashboard, das an den Browser angepasst ist.
Lizenzierung ohne Überraschungen
IronPDF verwendet eine unbefristete Lizenzierung - einmal kaufen, unbegrenzt nutzen. Keine Offenlegung des AGPL-Quellcodes. Keine Umsatzschwellen. Keine Pflichtabonnements. Die Preise beginnen bei 749 US-Dollar für einen einzelnen Entwickler und werden auf der Website veröffentlicht, nicht hinter einer "Kontakt"-Wand.
Plattformübergreifend ohne Umgehungslösungen
IronPDF läuft auf Windows, Linux, macOS und Docker-Containern ohne libgdiplus-Abhängigkeiten, System.Drawing.Common-Probleme oder native Binärinstallation. Die Docker-Bereitstellung ist ein Standard-.NET-Basis-Image ohne zusätzliche Konfiguration.
Die Entscheidung treffen
| Anforderung | PdfSharp |
QuestPDF | iTextSharp | wkhtmltopdf | IronPDF |
|---|---|---|---|---|---|
| Wirklich frei (MIT/Permissive) | Ja | Unter $1M Umsatz | Nein (AGPL) | Aufgegeben | Nein |
| HTML zu PDF | Nein | Nein | Beschränkt | Veraltet | Ja |
| Modernes CSS (Flexbox/Grid) | Nein | Nein | Nein | Nein | Ja |
| JavaScript-Ausführung | Nein | Nein | Nein | Beschränkt | Ja |
| Aktive Sicherheitswartung | Ja | Ja | Ja | Nein | Ja |
| Veröffentlichte Preise | Nicht anwendbar | Ja | Nein | Nicht anwendbar | Ja |
| Keine Umsatzschwelle | Ja | Nein | Nicht anwendbar | Ja | Ja |
Für Anwendungen, die nur eine programmatische PDF-Erstellung aus Daten erfordern - keine HTML-Vorlagen, keine Webinhalte - kann je nach Unternehmensgröße PdfSharpoder QuestPDF ausreichend sein.
Für Anwendungen, die HTML in PDF mit modernem CSS konvertieren, beschränken sich die Optionen darauf, entweder die kommerzielle Lizenz von iText zu bezahlen ($15K-$210K/Jahr), die Browser-Infrastruktur von Puppeteer zu verwalten oder eine kommerzielle Bibliothek zu verwenden, die für diese Aufgabe entwickelt wurde. Die unbefristete Lizenz von IronPDF ist mit 749 US-Dollar der kostengünstigste Weg zum HTML-Rendering in Produktionsqualität.
Die Formulierung "kostenlose PDF-Bibliothek C#" lockt Entwickler zu Lösungen, die nachgelagert größere Kosten verursachen. Die Bewertung sollte auf der Grundlage der Gesamtbetriebskosten erfolgen - Lizenzierung, Entwicklerzeit, Sicherheitswartung und Migrationsrisiko - und nicht anhand des Anschaffungspreises.