VERGLEICH

wkhtmltopdf vs IronPDF: Leitfaden für einen technischen Vergleich

wkhtmltopdf vs IronPDF: Ein technischer Vergleich für die .NET-PDF-Generierung

Wenn .NET-Entwickler HTML in PDF konvertieren müssen, ist wkhtmltopdf aufgrund seines Open-Source-Charakters und seiner Einfachheit in der Befehlszeile seit jeher eine beliebte Wahl. Die Einstellung des Projekts und kritische Sicherheitslücken haben jedoch viele Teams dazu veranlasst, moderne Alternativen zu prüfen. In diesem technischen Vergleich wird wkhtmltopdf nebenIronPDFuntersucht, um Architekten und Entwicklern zu helfen, die signifikanten Unterschiede in Bezug auf Sicherheit, Rendering-Fähigkeiten und langfristige Lebensfähigkeit zu verstehen.

Verstehen Sie wkhtmltopdf

wkhtmltopdf ist ein Tool zur Konvertierung von HTML in PDF-Dokumente, das direkt von der Kommandozeile aus arbeitet und Qt WebKit zur Verarbeitung von HTML-Inhalten nutzt. In den Jahren ihrer aktiven Entwicklung hat die Bibliothek aufgrund ihrer kostenlosen LGPLv3-Lizenzierung und ihrer plattformübergreifenden Verfügbarkeit an Popularität gewonnen.

Allerdings stellt wkhtmltopdf jetzt kritische Herausforderungen, die nicht ignoriert werden können:

  • Projektabbruch: Die letzten bedeutsamen Software-Updates fanden um 2016-2017 statt
  • Kritische Sicherheitsschwachstelle: CVE-2022-35583 (CVSS 9.8 Schweregrad) ist eine SSRF-Schwachstelle, die noch nicht behoben wurde
  • Veraltete Rendering Engine: Setzt auf Qt WebKit von 2015
  • Eingeschränkte Unterstützung für modernes Web: Keine CSS-Grid-Unterstützung, fehlerhafte Flexbox-Implementierung, kein ES6+ JavaScript
  • Stagnation des Ökosystems: Alle .NET-Wrapper-Bibliotheken (DinkToPdf, Rotativa, TuesPechkin, WkHtmlToPdf-DotNet, NReco.PdfGenerator) erben diese Schwachstellen

Die Sicherheitskrise CVE-2022-35583

Die Server-Side Request Forgery (SSRF)-Schwachstelle in wkhtmltopdf ermöglicht es Angreifern,:

  • Zugriff auf interne Dienste: Erreichen Sie interne APIs, Datenbanken und Dienste hinter Firewalls
  • Zugangsdaten stehlen: Zugriff auf Cloud-Metadaten-Endpunkte (AWS, GCP, Azure), um IAM-Anmeldeinformationen zu stehlen
  • Port Scanning: Scannen von internen Netzwerken innerhalb der Infrastruktur
  • Datenexfiltration: Extrahieren sensibler Daten durch manipuliertes HTML/CSS

Der Angriffsvektor ist einfach: bösartiges HTML, das an einen PDF-Generator übermittelt wird:

<!-- Malicious HTML submitted to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-database:5432/admin"/>
<!-- Malicious HTML submitted to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-database:5432/admin"/>
HTML

Wenn wkhtmltopdf dieses HTML rendert, holt es diese URLs aus dem Netzwerkkontext des Servers und umgeht dabei Firewalls und Sicherheitskontrollen. Diese Schwachstelle wird nie gepatcht werden, da das Projekt offiziell aufgegeben wurde.

IronPDFverstehen

IronPDF stellt eine robuste Alternative dar, die die Unzulänglichkeiten von wkhtmltopdf behebt. Mit aktiver Wartung, regelmäßigen Updates und der Verwendung der aktuellen Chromium-Rendering-Engine bietet IronPDF sowohl Sicherheit als auch die Einhaltung moderner Webstandards.

Zu den wichtigsten Merkmalen gehören:

  • Moderne Chromium-Engine: Verwendet die aktuelle Chromium-Rendering-Engine mit voller ES2024-JavaScript-Unterstützung
  • Keine bekannten CVEs: Keine bekannten Sicherheitsschwachstellen
  • Aktive Entwicklung: Regelmäßige Veröffentlichungen mit Sicherheitsupdates und Funktionserweiterungen
  • Komplette CSS-Unterstützung: Vollständiges CSS-Grid, Flexbox und moderne Layout-Systeme
  • Umfassende PDF-Funktionen: Digitale Signaturen, PDF/A-Konformität, PDF-Manipulationsfunktionen
  • Professioneller Support: Umfassende Dokumentation und spezielle Support-Kanäle

Funktionsvergleich

Die folgende Tabelle zeigt die grundlegenden Unterschiede zwischen wkhtmltopdf und IronPDF:

Feature wkhtmltopdf IronPDF
Lizenzierung LGPLv3 (Frei) Kommerziell
Rendering Engine Qt WebKit (2015) Aktuelle Chromium-Engine
Sicherheitsstatus CVE-2022-35583 KRITISCH (9.8) UNGEPATCHED Keine bekannten CVEs
Letzte bedeutsame Aktualisierung 2016-2017 Aktive Entwicklung
CSS Grid Nicht unterstützt Volle Unterstützung
Flexbox Gebrochen Volle Unterstützung
ES6+ JavaScript Nicht unterstützt Volle Unterstützung
Async/Await Nicht unterstützt Volle Unterstützung
PDF-Bearbeitung Nicht unterstützt Volle Unterstützung
Digitale Signaturen Nicht unterstützt Volle Unterstützung
PDF/A-Konformität Nicht unterstützt Volle Unterstützung
Professionelle Unterstützung Keine (aufgegeben) Kommerziell mit SLA
C#-Integration Über Wrapper von Drittanbietern Direkt, regelmäßig aktualisiert

Betroffene Wrapper-Bibliotheken

Alle .NET-Wrapper für wkhtmltopdf erben die gleichen Schwachstellen:

Wrapper-Bibliothek Status Sicherheitsrisiko
DinkToPdf Aufgegeben KRITISCH
Rotativa Aufgegeben KRITISCH
TuesPechkin Aufgegeben KRITISCH
WkHtmlToPdf-DotNet Aufgegeben KRITISCH
NReco.PdfGenerator Verwendet wkhtmltopdf KRITISCH

Wenn Ihre Anwendung eine dieser Bibliotheken verwendet, ist sie anfällig für CVE-2022-35583.

Unterschiede in der API-Architektur

Die API-Muster zwischen wkhtmltopdf-Wrappern undIronPDFweisen erhebliche Unterschiede in Bezug auf Komplexität und Benutzerfreundlichkeit auf.

wkhtmltopdf Konfigurationsmuster

wkhtmltopdf-Wrapper erfordern die Erstellung von Dokumentobjekten mit verschachtelten Einstellungskonfigurationen:

// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Portrait,
                PaperSize = PaperKind.A4
            },
            Objects = {
                new ObjectSettings()
                {
                    HtmlContent = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>"
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Portrait,
                PaperSize = PaperKind.A4
            },
            Objects = {
                new ObjectSettings()
                {
                    HtmlContent = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>"
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Muster erfordert die Erstellung eines SynchronizedConvertermit PdfTools, die Konstruktion eines HtmlToPdfDocumentmit GlobalSettings und Objects Sammlungen und das manuelle Schreiben von Byte-Arrays in Dateien.

IronPDFVereinfachtes Muster

IronPDF verwendet einen schlanken Ansatz mit der Klasse ChromePdfRenderer:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML.</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML.</p>");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Klasse ChromePdfRenderer beseitigt die verschachtelten Konfigurationsobjekte und liefert ein PdfDocument mit integrierten Speichermethoden. Eine umfassende Anleitung zur HTML-Konvertierung finden Sie im HTML to PDF tutorial.

URL zu PDF Konvertierung

Die Konvertierung von Webseiten in PDF zeigt den Komplexitätsunterschied zwischen den Ansätzen.

wkhtmltopdf Implementierung

wkhtmltopdf verwendet die Eigenschaft Page innerhalb von ObjectSettings, um URLs anzugeben:

// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Portrait,
                PaperSize = PaperKind.A4
            },
            Objects = {
                new ObjectSettings()
                {
                    Page = "https://www.example.com"
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Portrait,
                PaperSize = PaperKind.A4
            },
            Objects = {
                new ObjectSettings()
                {
                    Page = "https://www.example.com"
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFImplementierung

IronPDF bietet eine eigene RenderUrlAsPdf-Methode:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die RenderUrlAsPdf-Methode nutzt die Chromium-Engine, um Seiten mit vollständiger JavaScript-Ausführung und moderner CSS-Unterstützung zu rendern - Fähigkeiten, die durch die 2015er WebKit-Engine von IronPdf eingeschränkt sind.

Benutzerdefinierte PDF-Einstellungen

Die Konfiguration von Seitenabmessungen, Rändern und Ausrichtung zeigt die strukturellen Unterschiede zwischen den APIs.

wkhtmltopdf Benutzerdefinierte Einstellungen

wkhtmltopdf benötigt verschachtelte GlobalSettings mit MarginSettings Objekten:

// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Landscape,
                PaperSize = PaperKind.A4,
                Margins = new MarginSettings() { Top = 10, Bottom = 10, Left = 10, Right = 10 }
            },
            Objects = {
                new ObjectSettings()
                {
                    Page = "input.html",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("custom-output.pdf", pdf);
    }
}
// NuGet: Install-Package WkHtmlToPdf-DotNet
using WkHtmlToPdfDotNet;
using WkHtmlToPdfDotNet.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientierung= Orientation.Landscape,
                PaperSize = PaperKind.A4,
                Margins = new MarginSettings() { Top = 10, Bottom = 10, Left = 10, Right = 10 }
            },
            Objects = {
                new ObjectSettings()
                {
                    Page = "input.html",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("custom-output.pdf", pdf);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFBenutzerdefinierte Einstellungen

IronPDF verwendet RenderingOptions-Eigenschaften für die direkte Konfiguration:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;
        renderer.RenderingOptions.MarginLeft = 10;
        renderer.RenderingOptions.MarginRight = 10;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("custom-output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;
        renderer.RenderingOptions.MarginLeft = 10;
        renderer.RenderingOptions.MarginRight = 10;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("custom-output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

API-Mapping-Referenz

Teams, die eine Umstellung von wkhtmltopdf aufIronPDFerwägen, werden dieses Mapping hilfreich finden, um Konzeptäquivalenzen zu verstehen:

CLI-zu-C#-API-Zuordnung

wkhtmltopdf CLI-Option IronPDF-Äquivalent Notizen
wkhtmltopdf input.html output.pdf renderer.RenderHtmlFileAsPdf() Datei zu PDF
wkhtmltopdf URL Ausgabe.pdf renderer.RenderUrlAsPdf() URL zu PDF
--Seitengröße A4 RenderingOptions.PaperSize = PdfPaperSize.A4 Papierformat
--Seitengröße Letter RenderingOptions.PaperSize = PdfPaperSize.Letter US-Brief
--Orientierung Landschaft RenderingOptions.PaperOrientation = Querformat Orientierung
--margin-top 10mm RenderingOptions.MarginTop = 10 Ränder in mm
--margin-bottom 10mm RenderingOptions.MarginBottom = 10
--margin-left 10mm RenderingOptions.MarginLeft = 10
--margin-right 10mm RenderingOptions.MarginRight = 10
--header-html header.html RenderingOptions.HtmlHeader HTML-Kopfzeile
--footer-html footer.html RenderingOptions.HtmlFooter HTML-Fußzeile
--footer-center "[Seite]" {Seite} Platzhalter Seitenzahl
--footer-center "[toPage]" {Gesamtseiten} Platzhalter Seiten insgesamt
--javascript einschalten Standardmäßig aktiviert JavaScript
--javascript-verzögerung 500 RenderingOptions.WaitFor.RenderDelay = 500 JS-Verzögerung
--print-media-type RenderingOptions.CssMediaType = Print CSS-Medien
--dpi 300 RenderingOptions.Dpi = 300 DPI-Einstellung
--Graustufen RenderingOptions.GrayScale = true Graustufen
--zoom 0.8 RenderingOptions.Zoom = 80 Zoom (%)

C# Wrapper API Mapping

wkhtmltopdf Wrapper IronPDF Notizen
SynchronizedConverter ChromePdfRenderer Haupt-Renderer
HtmlToPdfDocument RenderingOptions Konfiguration
GlobalSettings.Out pdf.SaveAs() Ausgabedatei
GlobalSettings.PaperSize RenderingOptions.PaperSize Papierformat
GlobalSettings.Orientation RenderingOptions.PaperOrientation Orientierung
GlobalSettings.Margins RenderingOptions.Margin* Einzelne Ränder
ObjektEinstellungen.Seite RenderHtmlFileAsPdf() Datei-Eingabe
ObjectSettings.HtmlContent RenderHtmlAsPdf() HTML-Zeichenkette
HeaderSettings.Center TextHeader.CenterText Kopfzeilen-Text
FooterSettings.Center TextFooter.CenterText Text in der Fußzeile
converter.Convert(doc) renderer.RenderHtmlAsPdf() PDF generieren

Platzhalter-Syntax-Zuordnung

wkhtmltopdf Platzhalter IronPDFPlatzhalter
[Seite] {Seite}
[bisSeite] {Gesamtseiten}
[Datum] {Datum}
[Zeit] {Zeit}
[Titel] {html-title}
[url] {url}

Wenn Teams den Wechsel von wkhtmltopdf zuIronPDFerwägen

Es gibt mehrere Szenarien, die Entwicklerteams häufig dazu veranlassen,IronPDFals Alternative zu wkhtmltopdf zu prüfen:

Anforderungen an die Sicherheit

Organisationen, die Sicherheitsanforderungen erfüllen müssen (SOC 2, PCI DSS, HIPAA), können keine Anwendungen mit bekannten kritischen Schwachstellen akzeptieren. Der Schweregrad 9.8 von CVE-2022-35583 löst in den meisten Sicherheits-Frameworks sofortige Behebungsanforderungen aus.

Moderne CSS-Framework-Übernahme

Teams, die Bootstrap 5, Tailwind CSS oder benutzerdefinierte CSS-Grid-Layouts verwenden, stellen fest, dass wkhtmltopdf diese nicht korrekt darstellen kann. Der WebKit-Engine von 2015 fehlt die Unterstützung für CSS-Gitter vollständig und die Flexbox-Implementierung ist nicht mehr vorhanden.

JavaScript-Anwendungsanforderungen

Anwendungen, die moderne JavaScript-Funktionen verwenden - ES6+-Syntax einschließlich Pfeilfunktionen, async/await, Klassen und Template-Literalen - werden in wkhtmltopdf nicht funktionieren. Die Chromium-Engine vonIronPDFbietet vollständige JavaScript-Unterstützung.

Cloud- und Container-Einsätze

Moderne Bereitstellungsstrategien, die Docker, Kubernetes oder Cloud-Plattformen verwenden, profitieren von der containerfreundlichen Architektur von IronPDF. Sicherheitsscans von wkhtmltopdf-Binärdateien in Containern werden die CVE-Schwachstelle aufzeigen.

Langfristige Wartungsfragen

Da für wkhtmltopdf keine zukünftigen Updates zu erwarten sind, sehen sich die Teams mit zunehmenden technischen Schulden konfrontiert, da sich die Webstandards weiterentwickeln. Die aktive Entwicklung vonIronPDFgewährleistet die kontinuierliche Kompatibilität mit zukünftigen .NET-Versionen, einschließlich .NET 10, das für 2026 erwartet wird.

Zusätzliche IronPDF-Fähigkeiten

Neben der HTML-zu-PDF-Konvertierung bietetIronPDFFunktionen zur Dokumentenmanipulation, die wkhtmltopdf nicht bieten kann:

Async-Unterstützung

IronPDF bietet async/await-Unterstützung für die Leistung von Webanwendungen:

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}
public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dies verhindert das Blockieren von Threads in hochbelasteten Webanwendungen - eine Fähigkeit, die mit den nur synchronen Wrappern von wkhtmltopdf nicht verfügbar ist.

.NET-Kompatibilität und Zukunftsfähigkeit

die Aufgabe von wkhtmltopdf bedeutet, dass es keine Kompatibilitätstests oder Updates für neuere .NET-Versionen gibt.IronPDFwird aktiv weiterentwickelt und regelmäßig aktualisiert, um die Kompatibilität mit .NET 8, .NET 9 und zukünftigen Versionen, einschließlich .NET 10, das für 2026 erwartet wird, zu gewährleisten. Die async/await-Unterstützung in der gesamten API der Bibliothek entspricht den modernen C#-Entwicklungspraktiken, einschließlich der für C# 14 erwarteten Funktionen.

Abschluss

Die Unterschiede zwischen wkhtmltopdf undIronPDFsind in Bezug auf Sicherheit, Rendering-Funktionen und langfristige Rentabilität erheblich. die kritische SSRF-Schwachstelle von wkhtmltopdf (CVE-2022-35583) in Verbindung mit der Aufgabe von Projekten schafft eine unhaltbare Sicherheitslage für Produktionsanwendungen. Die WebKit-Engine von 2015 kann kein modernes CSS-Grid verarbeiten, hat keine Unterstützung für Flexbox und scheitert an ES6+ JavaScript.

Die Chromium-basierte Rendering-Engine vonIronPDFbietet volle Unterstützung für moderne Webstandards und enthält keine bekannten CVEs. Das vereinfachte API-Design - Methoden wie RenderHtmlAsPdf()und SaveAs() anstelle von verschachtelten Konfigurationsobjekten - reduziert die Komplexität des Codes und bietet gleichzeitig Funktionen wie PDF-Manipulation, digitale Signaturen und asynchrone Unterstützung, die wkhtmltopdf nicht bieten kann.

Teams, die derzeit wkhtmltopdf oder dessen Wrapper-Bibliotheken (DinkToPdf, Rotativa, TuesPechkin) verwenden, müssen aufgrund der Sicherheitsaspekte umgehend Alternativen prüfen. Die API-Zuordnung zwischen den CLI-Optionen von wkhtmltopdf und den RenderingOptions vonIronPDFist einfach, undIronPDFerfordert durchweg weniger Code und eliminiert gleichzeitig die Sicherheitsrisiken von wkhtmltopdf.

Weitere Anleitungen zur Implementierung finden Sie in der IronPDF-Dokumentation und den Tutorials, die spezielle Anwendungsfälle und erweiterte Funktionen behandeln.