Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von TuesPechkin zu IronPDF in C# migriert

Migrieren von TuesPechkinzu IronPDF: Ein kompletter C#-Entwicklerleitfaden

TuesPechkin dient als thread-sicherer Wrapper um die wkhtmltopdf-Bibliothek und hilft .NET-Entwicklern seit Jahren bei der Umwandlung von HTML in PDF. Die zugrundeliegende wkhtmltopdf-Technologie wurde jedoch zuletzt im Jahr 2015 aktualisiert und im Dezember 2022 offiziell eingestellt. Dies führt zu kritischen Einschränkungen in Bezug auf Sicherheit, Stabilität und Rendering, die Entwicklungsteams nicht länger ignorieren können.

Dieser Leitfaden bietet einen vollständigen Migrationspfad von TuesPechkinzu IronPDF, mit Schritt-für-Schritt-Anleitungen, Code-Vergleichen und praktischen Beispielen für professionelle .NET-Entwickler, die diesen Übergang evaluieren.

Warum jetzt von TuesPechkinmigrieren

Die Entscheidung, von TuesPechkinzu migrieren, ist für sicherheitsbewusste Entwicklungsteams nicht mehr optional. Die zugrundeliegende wkhtmltopdf-Bibliothek enthält kritische, ungepatchte Sicherheitslücken, die nie behoben werden.

Kritische Sicherheitsschwachstelle: CVE-2022-35583

Attribut Wert
CVE ID CVE-2022-35583
Schweregrad KRITISCH (9.8/10)
Attack Vector Netzwerk
Status Wird NIEMALS gepatcht
Betroffen ALLE TuesPechkin-Versionen

Die Betreuer von wkhtmltopdf haben ausdrücklich erklärt, dass sie KEINE Sicherheitslücken beheben werden. Jede Anwendung, die TuesPechkinverwendet, ist permanent Angriffen durch Server-Side Request Forgery (SSRF) ausgesetzt.

Wie die Attacke funktioniert

Bei der Verarbeitung von vom Benutzer bereitgestelltem HTML können Angreifer bösartige Inhalte einschleusen:

<!-- Attacker submits this HTML to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />
<!-- Attacker submits this HTML to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />
HTML

Dies ermöglicht Angreifern den Zugriff auf AWS/Azure/GCP-Metadaten-Endpunkte, den Diebstahl interner API-Daten, Port-Scans interner Netzwerke und die Exfiltration sensibler Konfigurationen.

Die Technologie-Krise

TuesPechkin umhüllt wkhtmltopdf, das Qt WebKit 4.8 verwendet - eine alte Technologie aus der Zeit vor Chrome. Das bedeutet:

  • Keine Flexbox-Unterstützung
  • Keine CSS-Grid-Unterstützung
  • Defekte JavaScript-Ausführung
  • Keine ES6+-Unterstützung

Die Stabilitätskrise

Selbst mit dem beworbenen ThreadSafeConverterstürzt TuesPechkinbei hoher Last ab:

// ❌ TuesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
// ❌ TuesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFvs. TuesPechkin: Funktionsvergleich

Das Verständnis der architektonischen Unterschiede hilft technischen Entscheidungsträgern, die Investition in die Migration zu bewerten:

Feature TuesPechkin IronPDF
Lizenz Frei (MIT-Lizenz) Kommerziell
Thread-Sicherheit Erfordert manuelles Management Native Unterstützung
Währung Begrenzt, kann unter Last abstürzen Robust, bewältigt hohe Gleichzeitigkeit
Entwicklung Inaktiv, zuletzt aktualisiert 2015 Aktive, kontinuierliche Verbesserungen
Benutzerfreundlichkeit Komplexe Einrichtung Benutzerfreundlich mit Anleitungen
Dokumentation Basic Ausführlich mit Beispielen
Sicherheit ❌ Kritische CVEs ✅ Keine bekannten Schwachstellen
HTML zu PDF ⚠️ Veraltetes WebKit ✅ Modernes Chromium
CSS3 ❌ Teilweise ✅ Volle Unterstützung
Flexbox/Grid ❌ Nicht unterstützt ✅ Volle Unterstützung
JavaScript ⚠️ Unzuverlässig ✅ Vollständig ES6+
PDF-Bearbeitung ❌ Nicht verfügbar ✅ Vollständig
Digitale Signaturen ❌ Nicht verfügbar ✅ Vollständig
PDF/A-Konformität ❌ Nicht verfügbar ✅ Vollständig
Formularausfüllen ❌ Nicht verfügbar ✅ Vollständig
Wasserzeichen ❌ Nicht verfügbar ✅ Vollständig
Merge/Split ❌ Nicht verfügbar ✅ Vollständig

Schnellstart: TuesPechkinzuIronPDFMigration

Mit diesen grundlegenden Schritten kann die Migration sofort beginnen.

Schritt 1: Ersetzen von NuGet-Paketen

Entfernen Sie alle TuesPechkin-Pakete:

# Remove TuesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
# Remove TuesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
SHELL

IronPDF installieren:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Schritt 2: Entfernen nativer Binärdateien

Löschen Sie diese Dateien und Ordner aus Ihrem Projekt:

  • wkhtmltox.dll
  • wkhtmltopdf.exe
  • Alle wkhtmlto*-Dateien
  • Ordner TuesPechkin.Wkhtmltox

Schritt 3: Namespaces aktualisieren

Ersetzen Sie die TuesPechkin-Namensräume durch den IronPdf-Namensraum:

// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Schritt 4: Lizenz initialisieren

Hinzufügen der Lizenzinitialisierung beim Start der Anwendung:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Beispiele für die Code-Migration

Konvertierung von HTML in PDF

Der häufigste Anwendungsfall verdeutlicht den Komplexitätsunterschied zwischen diesen .NET-PDF-Bibliotheken.

TuesPechkin-Ansatz:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für die TuesPechkin-Version muss ein StandardKonvertermit einer komplexen Initialisierungskette erstellt werden: RemotingToolset, Win64EmbeddedDeployment, und TempFolderDeployment. Sie müssen auch manuell Bytes in eine Datei schreiben.

MitIronPDFentfällt diese Zeremonie vollständig. Erstellen Sie einen ChromePdfRenderer, rendern Sie HTML, und speichern Sie. Der Code ist selbstdokumentierend und erfordert keine Kenntnisse über Deployment-Toolsets oder plattformspezifisches Binärmanagement.

Für fortgeschrittene HTML-zu-PDF-Szenarien siehe den HTML-zu-PDF-Konvertierungsleitfaden.

Konvertierung von URLs zu PDF

Die URL-zu-PDF-Konvertierung weist ähnliche Komplexitätsunterschiede auf.

TuesPechkin-Ansatz:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

// 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

TuesPechkin verwendet ObjectSettings.PageUrl, das in ein HtmlToPdfDocumenteingebettet ist.IronPDFbietet eine eigene RenderUrlAsPdf-Methode, die die Absicht klar zum Ausdruck bringt.

In der URL zur PDF-Dokumentation finden Sie Informationen zur Authentifizierung und zu benutzerdefinierten Kopfzeilenoptionen.

Benutzerdefinierte Rendering-Einstellungen

Seitenausrichtung, Papiergröße und Ränder erfordern unterschiedliche Konfigurationsansätze.

TuesPechkin-Ansatz:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientierung= GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientierung= GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("custom.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

TuesPechkin unterteilt die Einstellungen in GlobaleEinstellungenfür dokumentenweite Optionen und ObjectSettings für Inhalte.IronPDFfasst alles in RenderingOptionsmit klaren, auffindbaren Eigenschaftsnamen zusammen.

TuesPechkinAPI zuIronPDFMapping Referenz

Dieses Mapping beschleunigt die Migration, indem es direkte API-Entsprechungen aufzeigt:

TuesPechkin IronPDF Notizen
StandardKonverter ChromePdfRenderer Keine komplexe Initialisierung
ThreadSafeConverter ChromePdfRenderer Native Thread-Sicherheit
HtmlToPdfDocument Parameter der Methode Kein Dokument-Objekt erforderlich
GlobaleEinstellungen RenderingOptions Konfigurationsoptionen
ObjektEinstellungen.HtmlText RenderHtmlAsPdf(html) Direktes Rendering
ObjectSettings.PageUrl RenderUrlAsPdf(url) URL-Rendering
GlobalSettings.PaperSize RenderingOptions.PaperSize Papierformat
GlobalSettings.Orientation RenderingOptions.PaperOrientation Orientierung
MarginSettings MarginTop, MarginBottom, etc. Einzelne Randeigenschaften
[Seite] Platzhalter {Seite} Platzhalter Syntax der Seitenzahlen
[toPage] Platzhalter {Gesamtseiten} Platzhalter Gesamtseiten Syntax
RemotingToolset Nicht erforderlich Kein Bereitstellungsmanagement
Win64EmbeddedDeployment Nicht erforderlich Keine Plattform-Binärdateien
TempFolderDeployment Nicht erforderlich Keine Verwaltung von temporären Ordnern

Gängige Migrationsprobleme und Lösungen

Aufgabe 1: Komplexer Initialisierungscode

Problem: TuesPechkinerfordert ein komplexes Konverter-Setup mit Bereitstellungs-Toolsets.

Lösung:IronPDFist einfach:

// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 2: Abstürze der Thread-Sicherheit

Problem: Der ThreadSafeConvertervon TuesPechkinstürzt bei hoher Last immer noch mit AccessViolationException ab.

Lösung:IronPDFverfügt über eine systemeigene Thread-Sicherheit - eine spezielle Konfiguration ist nicht erforderlich:

//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 3: Seitenzahl-Platzhalter-Syntax

Problem: TuesPechkinverwendet [page] und [toPage] Platzhalter.

Lösung: Aktualisierung der Platzhalter-Syntax von IronPDF:

// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 4: CSS-Layout kaputt

Problem: Flexbox- und Grid-Layouts funktionieren in TuesPechkinnicht, weil wkhtmltopdf Qt WebKit 4.8 verwendet.

Lösung: Verwenden Sie korrektes modernes CSS mit IronPDF:

// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 5: Native Binärverwaltung

Problem: TuesPechkinerfordert plattformspezifische wkhtmltopdf-Binärdateien und eine Pfadkonfiguration.

Lösung:IronPDFwickelt alle Abhängigkeiten über NuGet ab - es müssen keine nativen Binärdateien verwaltet werden:

# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
SHELL

TuesPechkinCheckliste für die Migration

Vor der Migration anfallende Aufgaben

Überprüfen Sie Ihre Codebasis, um alle TuesPechkin-Verwendungen zu identifizieren:

grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
SHELL

Dokumentieren Sie die aktuellen GlobalSettings-Konfigurationen (Papierformat, Ausrichtung, Ränder). Dokumentieren Sie ObjectSettings-Konfigurationen (HTML-Inhalte, URLs). Identifizieren Sie Kopf-/Fußzeilen-Implementierungen für die Konvertierung. Lokalisieren Sie alle wkhtmltopdf-Binärdateien zur Entfernung.

Aufgaben der Code-Aktualisierung

  1. TuesPechkinNuGet-Pakete entfernen
  2. Native wkhtmltopdf-Binärdateien entfernen
  3. IronPdf NuGet-Paket installieren
  4. Aktualisieren Sie die Verwendungsanweisungen von TuesPechkin zu IronPdf
  5. Initialisierung des Lizenzschlüssels beim Start hinzufügen
  6. Ersetzen Sie Konverter durch ChromePdfRenderer
  7. GlobaleEinstellungenin RenderingOptionsumwandeln
  8. ObjectSettings in Methodenparameter umwandeln
  9. Aktualisierung der Randkonfiguration für einzelne Eigenschaften
  10. Aktualisierung der Syntax für Kopf- und Fußzeilen auf HTML-basierte HtmlHeaderFooter
  11. Korrektur der Syntax für Seitenplatzhalter ([Seite]{Seite})
  12. Entfernen Sie den gesamten Implementierungs-/Toolset-Code

Post-Migrationstests

Überprüfen Sie diese Aspekte nach der Migration:

  • Alle Unit-Tests ausführen
  • Testen Sie thread-sichere Szenarien (IronPDF beherrscht Multithreading ohne Abstürze)
  • Vergleich der PDF-Ausgabequalität (Chromium rendert genauer)
  • Überprüfen der CSS-Wiedergabe (Flexbox und Grid funktionieren jetzt)
  • Testen Sie die Ausführung von JavaScript (ES6+ wird jetzt unterstützt)
  • Testen Sie das Rendering von Kopf- und Fußzeilen
  • Batch-Operationen für Leistungstests
  • Sicherheitsüberprüfung, um sicherzustellen, dass keine wkhtmltopdf-Binärdateien vorhanden sind

Die wichtigsten Vorteile der Migration zu IronPDF

Der Wechsel von TuesPechkinzuIronPDFbietet mehrere entscheidende Vorteile:

Sicherheit: CVE-2022-35583und andere Sicherheitslücken in wkhtmltopdf wurden beseitigt. Die Chromium-Engine vonIronPDFerhält regelmäßig Sicherheitsupdates.

Native Thread Safety: Keine komplexen ThreadSafeConverter-Konfigurationen mehr. Keine AccessViolationException Abstürze unter Last mehr.IronPDFbehandelt die Gleichzeitigkeit automatisch.

Moderne Rendering Engine: Vollständige Unterstützung von CSS3, Flexbox, Grid und ES6+ JavaScript. Ihre PDFs werden genau so wiedergegeben, wie der Inhalt in modernen Browsern erscheint.

Vereinfachte Bereitstellung: Es müssen keine plattformspezifischen Binärdateien verwaltet werden. Keine RemotingToolset, Win64EmbeddedDeployment, oder TempFolderDeploymentZeremonie. Installieren Sie einfach das NuGet-Paket.

Aktive Entwicklung: Da die Verbreitung von .NET 10 und C# 14 bis 2026 zunimmt, gewährleisten die regelmäßigen Updates vonIronPDFdie Kompatibilität mit aktuellen und zukünftigen .NET-Versionen.

Erweiterte Fähigkeiten: TuesPechkinkonvertiert nur HTML in PDF.IronPDFermöglicht die Bearbeitung von PDF-Dateien, digitale Signaturen, PDF/A-Konformität, das Ausfüllen von Formularen, Wasserzeichen sowie das Zusammenführen und Teilen von Dateien.

Abschluss

TuesPechkin hat sich in der .NET-Community als thread-sicherer Wrapper für wkhtmltopdf bewährt. Da die zugrundeliegende Technologie jedoch seit Dezember 2022 nicht mehr verwendet wird und kritische Sicherheitslücken bestehen, die niemals gepatcht werden, stellt die weitere Verwendung ein inakzeptables Risiko für Produktionsanwendungen dar.

IronPDF bietet eine moderne, sichere Alternative mit einer einfacheren API, nativer Thread-Sicherheit und einer Chromium-Rendering-Engine, die aktuelle Webstandards unterstützt. Der Migrationspfad ist einfach: Ersetzen Sie NuGet-Pakete, eliminieren Sie native Binärdateien und vereinfachen Sie Ihren Konvertercode.

Beginnen Sie Ihre Migration noch heute mit einer kostenlosen Testversion von IronPDF und beseitigen Sie die Sicherheitslücken, die mit wkhtmltopdf-basierten Lösungen verbunden sind.

Eine umfassende Anleitung zur Implementierung finden Sie in der IronPDF-Dokumentation und den Tutorials.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen