Zum Fußzeileninhalt springen
VIDEOS

Wie man Text in einem PDF ersetzt | IronPDF

TuesPechkin hat als threadsicherer Wrapper um den wkhtmltopdf nativen Binärcode gedient und hilft .NET-Entwicklern seit Jahren beim Konvertieren von HTML in PDF. Allerdings wurde das zugrundeliegende wkhtmltopdf-Projekt im Januar 2023 auf GitHub archiviert, und der WebKit-Fork, auf den es angewiesen ist, stammt von etwa 2015. Dies schafft Sicherheiten, Stabilitäts- und Rendering-Einschränkungen, 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:


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

<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 ThreadSafeConverter stürzt TuesPechkinunter 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
' ❌ TuesPechkin- "ThreadSafeConverter" still crashes
Dim converter = New TuesPechkin.ThreadSafeConverter(
    New TuesPechkin.RemotingToolset(Of PechkinBindings)())

' Under high load, you'll see:
' System.AccessViolationException: Attempted to read or write protected memory
' Process terminated unexpectedly
' Converter hangs indefinitely
$vbLabelText   $csharpLabel

IronPDF vs. TuesPechkin: Funktionsvergleich

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

Feature TuesPechkin IronPDF
Lizenz Kostenlos, Open-Source 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 ✅ Unterstützt
Flexbox/Grid ❌ Nicht unterstützt ✅ Unterstützt
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: TuesPechkinzu IronPDF Migration

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
  • TuesPechkin.Wkhtmltox Ordner

Schritt 3: Namespaces aktualisieren

Ersetzen Sie TuesPechkin-Namespaces durch das IronPDF- Namespace:

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

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

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

' After (IronPDF)
Imports IronPdf
$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);
    }
}
Imports TuesPechkin
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
            .Objects = {New ObjectSettings With {.HtmlText = html}}
        })

        File.WriteAllBytes("output.pdf", pdfBytes)
    End Sub
End Class
$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");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Die TuesPechkin-Version erfordert die Erstellung einer StandardConverter mit einer komplexen Initialisierungskette: RemotingToolset, Win64EmbeddedDeployment, und TempFolderDeployment. Sie müssen auch manuell Bytes in eine Datei schreiben.

Mit IronPDF entfällt diese Zeremonie vollständig. Erstellen Sie eine 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);
    }
}
Imports TuesPechkin
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
            .Objects = {
                New ObjectSettings With {
                    .PageUrl = "https://www.example.com"
                }
            }
        })

        File.WriteAllBytes("webpage.pdf", pdfBytes)
    End Sub
End Class
$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");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")

        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

TuesPechkin verwendet ObjectSettings.PageUrl, das in einem HtmlToPdfDocument eingebettet ist.IronPDF bietet eine spezielle RenderUrlAsPdf Methode, die die Absicht klar ausdrückt.

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
// NuGet: Install-Package TuesPechkin.Wkhtmltox.Win64
using TuesPechkin;
using System.Drawing.Printing;
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 = {
                Orientation = GlobalSettings.PaperOrientation.Landscape,
                PaperSize = PaperKind.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
// NuGet: Install-Package TuesPechkin.Wkhtmltox.Win64
using TuesPechkin;
using System.Drawing.Printing;
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 = {
                Orientation = GlobalSettings.PaperOrientation.Landscape,
                PaperSize = PaperKind.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);
    }
}
Imports TuesPechkin
Imports System.Drawing.Printing
Imports System.IO

Module Program
    Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"

        Dim document = New HtmlToPdfDocument With {
            .GlobalSettings = New GlobalSettings With {
                .Orientation = GlobalSettings.PaperOrientation.Landscape,
                .PaperSize = PaperKind.A4,
                .Margins = New MarginSettings With {.Unit = Unit.Millimeters, .Top = 10, .Bottom = 10}
            },
            .Objects = {
                New ObjectSettings With {.HtmlText = html}
            }
        }

        Dim pdfBytes As Byte() = converter.Convert(document)
        File.WriteAllBytes("custom.pdf", pdfBytes)
    End Sub
End Module
$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");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

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

        Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("custom.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

TuesPechkin trennt die Einstellungen in GlobalSettings für dokumentweite Optionen und ObjectSettings für Inhalte.IronPDF konsolidiert alles in RenderingOptions mit klaren, auffindbaren Eigenschaftsnamen.

TuesPechkinAPI zu IronPDF Mapping Referenz

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

TuesPechkin IronPDF
StandardConverter ChromePdfRenderer
ThreadSafeConverter ChromePdfRenderer
HtmlToPdfDocument Parameter der Methode
GlobalSettings RenderingOptions
ObjectSettings.HtmlText RenderHtmlAsPdf(html)
ObjectSettings.PageUrl RenderUrlAsPdf(url)
GlobalSettings.PaperSize RenderingOptions.PaperSize
GlobalSettings.Orientation RenderingOptions.PaperOrientation
MarginSettings MarginTop, MarginBottom, usw.
[page] Platzhalter {page} Platzhalter
[topage] Platzhalter {total-pages} Platzhalter
RemotingToolset Nicht erforderlich
Win64EmbeddedDeployment Nicht erforderlich
TempFolderDeployment Nicht erforderlich

Gängige Migrationsprobleme und Lösungen

Aufgabe 1: Komplexer Initialisierungscode

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

Lösung:IronPDF ist 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!
' Before (TuesPechkin)
Dim converter = New StandardConverter(
    New RemotingToolset(Of PdfToolset)(
        New Win64EmbeddedDeployment(
            New TempFolderDeployment())))

' After (IronPDF)
Dim renderer = New ChromePdfRenderer()
' That's it!
$vbLabelText   $csharpLabel

Ausgabe 2: Abstürze der Thread-Sicherheit

Problem: TuesPechkins ThreadSafeConverter stürzt immer noch unter hoher Last mit AccessViolationException ab.

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

//IronPDF is inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
//IronPDF is inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
'IronPDF is inherently thread-safe
Dim renderer As New ChromePdfRenderer()
' Use from any thread without crashes
$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}"
' Before (TuesPechkin)
"Page [page] of [topage]"

' After (IronPDF)
"Page {page} of {total-pages}"
$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!
' Remove table-based workarounds, use modern CSS
Dim html As String = "
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>"

Dim pdf = renderer.RenderHtmlAsPdf(html)
' Works correctly with Chromium!
$vbLabelText   $csharpLabel

Ausgabe 5: Native Binärverwaltung

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

Lösung:IronPDF wickelt 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 aktuelle GlobalSettings Konfigurationen (Papiergröße, Orientierung, Ränder). Dokumentieren Sie ObjectSettings Konfigurationen (HTML-Inhalt, 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
  3. Aktualisieren Sie die using-Anweisungen von TuesPechkin zu IronPdf
  4. Initialisierung des Lizenzschlüssels beim Start hinzufügen
  5. Ersetzen Sie Konverter durch ChromePdfRenderer
  6. Konvertieren Sie GlobalSettings zu RenderingOptions
  7. Konvertieren Sie ObjectSettings zu Methodenparametern
  8. Aktualisierung der Randkonfiguration für einzelne Eigenschaften
  9. Aktualisieren Sie die Header-/Footer-Syntax auf HTML-basierte HtmlHeaderFooter
  10. Korrigieren Sie die Seitenplatzhalter-Syntax ([page]{page})
  11. 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 TuesPechkinzu IronPDF bietet mehrere entscheidende Vorteile:

Sicherheit: CVE-2022-35583und andere wkhtmltopdf-Schwachstellen wurden behoben. Die Chromium-Engine von IronPDF erhält regelmäßig Sicherheitsupdates.

Eingebettete Thread-Sicherheit: Keine komplexen ThreadSafeConverter Konfigurationen mehr. Keine AccessViolationException Abstürze mehr unter Last.IronPDF behandelt die Gleichzeitigkeit automatisch.

Moderne Rendering-Engine: Volle Unterstützung für CSS3, Flexbox, Grid und ES6+ JavaScript . Ihre PDFs werden genau so wiedergegeben, wie der Inhalt in modernen Browsern erscheint.

Vereinfachte Bereitstellung: Keine plattformspezifischen Binärdateien zu verwalten. Keine RemotingToolset, Win64EmbeddedDeployment oder TempFolderDeployment Zeremonie. Installieren Sie einfach das NuGet-Paket.

Aktive Entwicklung: IronPDFs regelmäßige Updates gewährleisten die Kompatibilität mit aktuellen und zukünftigen .NET-Versionen.

Erweiterte Funktionen: TuesPechkinkonvertiert ausschließlich HTML in PDF.IronPDF ermö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.

Hinweis:TuesPechkin und wkhtmltopdf sind eingetragene Markenzeichen ihrer jeweiligen Eigentümer. Diese Seite ist nicht mit TuesPechkinoder wkhtmltopdf verbunden, befürwortet oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

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

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an