Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von ZetPDF zu IronPDF in C# migriert

Migrieren von ZetPDFzu IronPDF: Ein kompletter C#-Entwicklerleitfaden

ZetPDF ist eine kommerziell lizenzierte PDF-Bibliothek für C#-Anwendungen, die auf der Grundlage der weit verbreiteten Open-Source-Bibliothek PDFSharp aufgebaut ist. ZetPDFbietet zwar kommerzielle Unterstützung und grundlegende Funktionen zur PDF-Bearbeitung, hat aber erhebliche Einschränkungen von seiner PDFSharp-Grundlage geerbt. Die Bibliothek basiert vor allem auf koordinatenbasierter Grafikprogrammierung und bietet im Vergleich zu modernen Alternativen nur begrenzte HTML-zu-PDF-Konvertierungsmöglichkeiten.

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

Warum von ZetPDFmigrieren

ZetPDF ist eine Abspaltung von PDFSharp und erbt die gleichen architektonischen Einschränkungen, die seine Effektivität für moderne Workflows zur Dokumentenerstellung einschränken. Zu den wichtigsten Gründen, warum Entwicklerteams eine Migration in Betracht ziehen, gehören:

Koordinaten-basierte API: ZetPDFzwingt Entwickler dazu, jedes Element mit exakten Koordinaten zu positionieren. Die komplexe manuelle Positionierung der einzelnen Elemente stellt eine Herausforderung für die Wartung dar, wenn sich die Anforderungen ändern.

Beschränkte CSS-Unterstützung: Kein Styling-System bedeutet manuelle Schrift- und Farbverwaltung für jedes Element.

Kein JavaScript-Rendering: Während der PDF-Generierung dürfen keine dynamischen Webinhalte gerendert oder JavaScript ausgeführt werden.

Beschränktes einzigartiges Angebot: Verglichen mit der direkten und kostenlosen Nutzung von PDFSharp bietet ZetPDFnur wenige zwingende Gründe, die eine kommerzielle Lizenzierung erforderlich machen.

Manuelle Seitenumbrüche: Muss den Seitenüberlauf manuell berechnen und verwalten, anstatt sich auf den automatischen Seitenumbruch zu verlassen.

Textmessung erforderlich: Die manuelle Berechnung des Textumbruchs verursacht zusätzlichen Entwicklungsaufwand.

Das grundsätzliche Problem

ZetPDF und PDFSharp zwingen Sie dazu, jedes Element mit exakten Koordinaten zu positionieren:

// ZetPDF: Handbuch positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
// ZetPDF: Handbuch positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF verwendet HTML/CSS- die Layout-Engine kümmert sich um alles:

// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFvs. ZetPDF: Funktionsvergleich

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

Feature ZetPDF IronPDF
Basierend auf PDFSharp Ja Nein
HTML-zu-PDF-Konvertierung Beschränkt Ja (Vollständiges Chromium)
Kommerzielle Lizenz Ja, Perpetual Ja
Open Source Foundation PDFSharp (MIT-Lizenz) Chromium-basiert
CSS-Unterstützung Nein Vollständig CSS3
JavaScript Nein Vollständiger ES2024
Automatisches Layout Nein Ja
Automatische Seitenumbrüche Nein Ja
Tabellen Handzeichnung HTML <table>
Kopf-/Fußzeilen Handbuch HTML/CSS
Wasserzeichen Manueller Code Eingebaut
PDFs zusammenführen Beschränkt Ja
PDFs aufteilen Beschränkt Ja
Digitale Signaturen Nein Ja
PDF/A Nein Ja
Einfachheit und Benutzerfreundlichkeit Mäßig Hoch

Schnellstart: ZetPDFzuIronPDFMigration

Mit diesen grundlegenden Schritten kann die Migration sofort beginnen.

Schritt 1: Ersetzen des NuGet-Pakets

ZetPDF entfernen:

# Remove ZetPDF
dotnet remove package ZetPDF
# Remove ZetPDF
dotnet remove package ZetPDF
SHELL

IronPDF installieren:

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

Schritt 2: Namespaces aktualisieren

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

// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;

// After (IronPDF)
using IronPdf;
// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;

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

Schritt 3: 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 HTML-zu-PDF-Vorgang demonstriert die API-Unterschiede zwischen diesen .NET-PDF-Bibliotheken.

ZetPDF-Ansatz:

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

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
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 htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ZetPDF verwendet HtmlToPdfConvertermit ConvertHtmlToPdf(), das direkt in einen Dateipfad schreibt.IronPDFbietet ChromePdfRenderermit RenderHtmlAsPdf(), das ein PdfDocument-Objekt zurückgibt, das Ihnen mehr Flexibilität bei der Ausgabe bietet - Sie können in eine Datei speichern, binäre Daten erhalten oder vor dem Speichern zusätzliche Operationen durchführen.

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

Konvertierung von URLs zu PDF

Die URL-zu-PDF-Konvertierung zeigt die Musterunterschiede deutlich auf.

ZetPDF-Ansatz:

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

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}
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 url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

ZetPDF verwendet die gleiche HtmlToPdfConverter-Klasse mit ConvertUrlToPdf().IronPDFbietet RenderUrlAsPdf()auf ChromePdfRenderer, das eine vollständige Chromium-Rendering-Engine für die genaue Erfassung von Webseiten einschließlich der Ausführung von JavaScript und modernem CSS nutzt.

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

Mehrere PDFs zusammenführen

Bei der Zusammenführung von PDF-Dokumenten zeigen sich erhebliche API-Unterschiede in der Handhabung von Dokumenten.

ZetPDF-Ansatz:

// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ZetPDF verwendet eine eigene PdfMerger-Klasse, die Dateipfade mit MergeFiles() bearbeitet.IronPDFlädt Dokumente als PdfDocument-Objekte mit PdfDocument.FromFile()und führt sie dann mit der statischen Methode PdfDocument.Merge()zusammen. Dieser objektorientierte Ansatz ermöglicht zusätzliche Operationen am zusammengeführten Dokument vor dem Speichern.

In der PDF-Zusammenführungsdokumentation finden Sie weitere Zusammenführungsoptionen.

Koordinatenbasiertes Zeichnen vs. HTML

Für Entwickler mit vorhandenem ZetPDF-Code, der koordinatenbasierte Grafiken verwendet, beinhaltet der Migrationspfad die Konvertierung von Zeichenbefehlen in HTML/CSS.

ZetPDF koordinatenbasierter Ansatz:

using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);

var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");
using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);

var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF HTML-Ansatz:

using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial, sans-serif; padding: 50px; }}
        h1 {{ color: navy; }}
        .date {{ color: gray; }}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial, sans-serif; padding: 50px; }}
        h1 {{ color: navy; }}
        .date {{ color: gray; }}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der ZetPDF-Ansatz erfordert die Erstellung von Schriftobjekten, die Berechnung genauer Pixelpositionen und die manuelle Verwaltung des Grafikkontexts. Der IronPDF-Ansatz verwendet Standard-HTML und CSS, die Webentwickler bereits kennen - Schriftarten, Farben und Layout werden über bekannte CSS-Eigenschaften gehandhabt.

ZetPDFAPI zuIronPDFMapping Referenz

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

ZetPDF IronPDF Notizen
new PdfDocument() new ChromePdfRenderer() Renderer erstellen
document.AddPage() Automatisch Aus HTML erstellte Seiten
XGraphics.FromPdfPage(Seite) Nicht anwendbar Verwenden Sie stattdessen HTML/CSS
graphics.DrawString() HTML-Textelemente <p>, <h1>, usw.
graphics.DrawImage() <img> tag HTML-Bilder
graphics.DrawLine() CSS-Rahmen Oder <hr>
graphics.DrawRectangle() CSS border + div HTML-Boxen
new XFont() CSS font-family Unterstützte Webfonts
XBrushes.Black CSS Farbe Vollfarbige Unterstützung
document.Save() pdf.SaveAs() In Datei speichern
PdfReader.Open() PdfDocument.FromFile() Vorhandene PDF-Datei laden
HtmlToPdfConverter ChromePdfRenderer HTML-Konvertierung
KonvertiereHtmlZuPdf() RenderHtmlAsPdf() HTML-String in PDF
ConvertUrlToPdf() RenderUrlAsPdf() URL zu PDF
PdfMerger PdfDocument.Merge() PDFs kombinieren

Gängige Migrationsprobleme und Lösungen

Ausgabe 1: Koordinatenbasiertes Layout

ZetPDF: Alles erfordert genaue X,Y-Koordinaten mit manueller Positionierung.

Lösung: Verwenden Sie HTML/CSS-Flow-Layout. Verwenden Sie bei Bedarf CSS für die absolute Positionierung:

.positioned-element {
    position: absolute;
    top: 100px;
    left: 50px;
}

Ausgabe 2: Font-Objekt-Verwaltung

ZetPDF: Erstellen Sie XFont-Objekte für jede Schriftartvariante.

Lösung: Verwenden Sie CSS font-family - Schriftarten werden automatisch behandelt:

<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
HTML

Ausgabe 3: Farbverarbeitung

ZetPDF: Verwenden Sie XBrushes und Farbobjekte.

Lösung: Verwenden Sie Standard-CSS-Farben:

.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }

Ausgabe 4: Manuelle Seitenumbrüche

ZetPDF: Verfolgen Sie die Y-Position und erstellen Sie manuell neue Seiten, wenn der Inhalt überläuft.

Lösung:IronPDFsorgt für automatische Seitenumbrüche. Verwenden Sie CSS zur eindeutigen Steuerung:

.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }

Ausgabe 5: Tabellenerstellung

ZetPDF: Erfordert manuelles Zeichnen von Rechtecken, Linien und Textpositionierung.

Lösung: Verwenden Sie Standard-HTML-Tabellen mit CSS-Styling:

<table style="border-collapse: collapse; width: 100%;">
    <tr>
        <th style="border: 1px solid black; padding: 8px;">Header</th>
    </tr>
    <tr>
        <td style="border: 1px solid black; padding: 8px;">Data</td>
    </tr>
</table>
<table style="border-collapse: collapse; width: 100%;">
    <tr>
        <th style="border: 1px solid black; padding: 8px;">Header</th>
    </tr>
    <tr>
        <td style="border: 1px solid black; padding: 8px;">Data</td>
    </tr>
</table>
HTML

ZetPDF-Migrations-Checkliste

Vor der Migration anfallende Aufgaben

Überprüfen Sie Ihre Codebasis, um die Verwendung von ZetPDFzu identifizieren:

grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
SHELL

Dokumentieren Sie koordinatenbasierten Zeichencode, der in HTML konvertiert werden muss. Beachten Sie die Verwendung von Schriftarten und Farben. Layout-Strukturen auf HTML-Äquivalente abbilden.

Aufgaben der Code-Aktualisierung

  1. ZetPDFNuGet-Paket entfernen
  2. IronPdf NuGet-Paket installieren
  3. Aktualisierung der Namespace-Importe von ZetPDF nach IronPdf
  4. Ersetzen Sie HtmlToPdfConvertermit ChromePdfRenderer
  5. Konvertieren Sie ConvertHtmlToPdf()-Aufrufe in RenderHtmlAsPdf()+ SaveAs()
  6. Konvertieren Sie ConvertUrlToPdf()-Aufrufe in RenderUrlAsPdf()+ SaveAs()
  7. Ersetzen Sie PdfMerger.MergeFiles() mit PdfDocument.Merge()
  8. Umwandlung von DrawString()-Aufrufen in HTML-Textelemente
  9. Konvertieren von XFont in CSS font-family
  10. Ersetzen von XBrushes durch CSS-Farben
  11. IronPDF-Lizenzinitialisierung beim Start hinzufügen

Post-Migrationstests

Überprüfen Sie diese Aspekte nach der Migration:

  • Vergleichen Sie die visuelle Ausgabe, um sicherzustellen, dass das Erscheinungsbild übereinstimmt oder verbessert wird
  • Überprüfen Sie, ob die Schriftarten mit CSS-Styling wie erwartet dargestellt werden
  • Testen Sie, ob die Seitenumbrüche bei der automatischen Paginierung korrekt erfolgen
  • Überprüfen Sie, ob die Bilder richtig positioniert und angezeigt werden
  • Testen Sie, ob PDF-Zusammenführungsvorgänge eine korrekte Ausgabe erzeugen
  • Bestätigen Sie, dass alle vorhandenen Funktionen mit der neuen Implementierung funktionieren

Die wichtigsten Vorteile der Migration zu IronPDF

Der Wechsel von ZetPDFzuIronPDFbietet mehrere entscheidende Vorteile:

Moderne Chromium-Rendering-Engine:IronPDFverwendet Chromium für die HTML-zu-PDF-Konvertierung und gewährleistet die vollständige Unterstützung von CSS3 und ES2024 JavaScript. Moderne Frameworks und responsive Designs werden korrekt wiedergegeben.

HTML-basierte Inhaltserstellung: Webentwickler können ihre vorhandenen HTML- und CSS-Kenntnisse nutzen. Es besteht keine Notwendigkeit, koordinatenbasierte Zeichen-APIs zu erlernen oder Schriftobjekte zu verwalten.

Automatisches Layout und Paginierung: Textumbruch, Seitenumbrüche und fließendes Layout erfolgen automatisch. Keine manuelle Berechnung von Elementpositionen.

Vereinfachte API: Einzelmethodenaufrufe für gängige Operationen. PdfDocument.Merge()ersetzt komplexe Dateipfad-Verarbeitungsmuster.

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.

Umfassender Funktionsumfang: Integrierte Wasserzeichen, digitale Signaturen, PDF/A-Konformität und erweiterte Funktionen zur PDF-Bearbeitung, die ZetPDFnicht bietet.

Abschluss

ZetPDF bietet grundlegende PDF-Bearbeitungsfunktionen durch seine PDFSharp-Grundlage. Die koordinatenbasierte Grafikprogrammierung, die begrenzte HTML-Unterstützung und der Mangel an modernen Funktionen machen die Dokumentenerstellung jedoch unnötig kompliziert.

IronPDF verwandelt die PDF-Erstellung von einer grafischen Programmierübung in eine vertraute HTML/CSS-Entwicklung. Der Migrationspfad ist einfach: Ersetzen Sie NuGet-Pakete, aktualisieren Sie Konverterklassen und nutzen Sie HTML für die Erstellung von Inhalten.

Beginnen Sie Ihre Migration noch heute mit einer kostenlosen Testversion von IronPDF und erleben Sie die Einfachheit der Chromium-basierten Dokumentenerstellung.

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