Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von PDF Duo zu IronPDF in C#

Durch die Migration von PDF Duo .NET zu IronPDF wird Ihr .NET-PDF-Workflow von einer obskuren, schlecht dokumentierten Bibliothek mit unklarem Wartungsstatus zu einer stabilen, gut dokumentierten und aktiv gewarteten Lösung. Dieser Leitfaden bietet einen umfassenden, schrittweisen Migrationspfad, der die Risiken im Zusammenhang mit aufgegebenen Bibliotheken eliminiert und gleichzeitig den Zugang zu erweiterten Funktionen ermöglicht, die PDF Duo nicht bieten kann.

Warum von PDF Duo zu IronPDF migrieren

Das PDF-Duo-Risiko-Problem

PDF Duo .NET ist eine schwer zugängliche und weniger bekannte Bibliothek im .NET-Ökosystem. Die Bibliothek mag zwar für Entwickler interessant sein, die Einfachheit suchen, aber ihre Unübersichtlichkeit stellt für Produktionsanwendungen eine große Herausforderung dar:

  1. Unklare Herkunft: Unbekannter Entwickler ohne nachweisbare Unternehmenszugehörigkeit. Es gibt kein sichtbares GitHub-Repository oder Quellcode, begrenzte NuGet-Download-Statistiken und unsichere Lizenzbedingungen.

  2. Fehlende Dokumentation: Es ist nahezu unmöglich, verlässliche Informationen zu finden. Es gibt keine offizielle API-Referenz, nur wenige Community-Beispiele und keine offiziellen Tutorials oder Anleitungen. Alle Versuche, PDF Duo zu nutzen, werden durch den Mangel an zuverlässiger Dokumentation behindert.

  3. Verlassener oder inaktiver Status: Anzeichen von Vernachlässigung sind an sporadischen oder gar keinen Aktualisierungen erkennbar. In den Support-Foren werden Beiträge aus dem Jahr 2019 angezeigt, die nicht beantwortet wurden. Das sehr reale Risiko, dass die Übersetzung aufgegeben wird, beeinträchtigt die Realisierbarkeit für wichtige Projekte.

  4. Eingeschränkter Funktionsumfang: Nur Basisfunktionen – einfache HTML-zu-PDF-Konvertierung und einfache PDF-Zusammenführung ohne erweiterte Funktionen wie Formulare, Sicherheit oder Wasserzeichen.

  5. Unbekannte Rendering-Engine: Keine Transparenz darüber, was sich im Hintergrund abspielt. Die CSS/JavaScript-Unterstützung ist unbekannt, die Rendering-Qualität ist unvorhersehbar und die Unterstützung moderner Webfunktionen ist ungewiss.

  6. Supportrisiko: Keine Entschädigung, wenn etwas kaputt geht. Es gibt keinen professionellen Support, keine Community, die helfen könnte, und es besteht die Gefahr, dass die Übersetzung aufgegeben wird.

Vergleich zwischen PDF Duo und IronPDF

Aspekt PDF Duo .NET IronPDF
Wartung Unbekannt/Inaktiv Aktive, regelmäßige Aktualisierungen
Dokumentation Spärlich/Fehlend Umfassend
Unterstützung Keine Professionelles Support-Team
Gemeinschaft ~0 Benutzer 41M+ NuGet Downloads
Rendering Unbekannter Motor Modernes Chromium
Merkmale Basic Voller Funktionsumfang
Stabilität Unbekannt Produktionserprobt
Lizenzierung Unklar Transparent

Für Teams, die die Einführung von .NET 10 und C# 14 bis zum Jahr 2025 bzw. 2026 planen, bietet IronPDF eine stabile Grundlage mit aktiver Entwicklung und umfassender Dokumentation, die die Unsicherheiten beseitigt, die mit dem Verlassen auf eine verlassene Bibliothek verbunden sind.


Bevor Sie beginnen

Voraussetzungen

  1. .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# Remove PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo

# Install IronPDF
dotnet add package IronPdf
# Remove PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Identifizieren Sie die Verwendung von PDF Duo

# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
SHELL

Komplette API-Referenz

Namensraumänderungen

PDF Duo .NET IronPDF
using PDFDuo; using IronPdf;
using PDFDuo.Document; using IronPdf;
using PDFDuo.Rendering; using IronPdf.Rendering;
using PDFDuo.Settings; using IronPdf;

HTML zu PDF Konvertierung Zuordnungen

PDF Duo .NET IronPDF
new HtmlToPdfConverter() new ChromePdfRenderer()
converter.ConvertHtmlString(html, path) renderer.RenderHtmlAsPdf(html).SaveAs(path)
converter.ConvertUrl(url, path) renderer.RenderUrlAsPdf(url).SaveAs(path)
converter.ConvertFile(htmlPath, pdfPath) renderer.RenderHtmlFileAsPdf(htmlPath).SaveAs(pdfPath)

Zuordnungen der Seitenkonfiguration

PDF Duo .NET IronPDF
settings.PageSize = PageSize.A4 RenderingOptions.PaperSize = PdfPaperSize.A4
settings.PageSize = PageSize.Letter RenderingOptions.PaperSize = PdfPaperSize.Letter
settings.Orientation = Landscape RenderingOptions.PaperOrientation = Landscape
new Margins(top, right, bottom, left) Einzelne Randeigenschaften

Margins-Zuordnungen

PDF Duo .NET IronPDF
new Margins(top, right, bottom, left) Einzelne Eigenschaften
margins.Top RenderingOptions.MarginTop
margins.Right RenderingOptions.MarginRight
margins.Bottom RenderingOptions.MarginBottom
margins.Left RenderingOptions.MarginLeft

Zuordnungen von Dokumentenoperationen

PDF Duo .NET IronPDF
PDFDocument.Load(path) PdfDocument.FromFile(path)
document.Save(path) pdf.SaveAs(path)
document.ToBytes() pdf.BinaryData
new PdfMerger() PdfDocument.Merge()
merger.AddFile(path) PdfDocument.FromFile(path)
merger.Merge(output) merged.SaveAs(output)

Neue Funktionen, die in PDF Duo nicht verfügbar sind

Feature IronPDF
Kopf-/Fußzeilen RenderingOptions.HtmlHeader, HtmlFooter
Seitenzahlen {page}, {total-pages} Platzhalter
Wasserzeichen pdf.ApplyWatermark(html)
Passwortschutz pdf.SecuritySettings
Ausfüllen von Formularen pdf.Form.Fields
Digitale Signaturen pdf.SignWithFile()
Textextraktion pdf.ExtractAllText()
PDF zu Bild pdf.RasterizeToImageFiles()

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        converter.ConvertHtmlString(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        converter.ConvertHtmlString(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
Imports PDFDuo
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        Dim htmlContent As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
        converter.ConvertHtmlString(htmlContent, "output.pdf")
        Console.WriteLine("PDF created successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        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 = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>"
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")
        Console.WriteLine("PDF created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Der grundlegende Unterschied ist hier das API-Muster. PDF Duo's HtmlToPdfConverter.ConvertHtmlString() nimmt sowohl den HTML-Code als auch den Ausgabepfad in einem einzigen Aufruf entgegen und übernimmt dabei Konvertierung und Speicherung. IronPDF's ChromePdfRenderer.RenderHtmlAsPdf() gibt zuerst ein PdfDocument Objekt zurück, das Sie dann mit SaveAs() speichern.

Dieser objektorientierte Ansatz bietet erhebliche Vorteile: Sie können die PDF-Datei vor dem Speichern manipulieren (Wasserzeichen hinzufügen, Dokumente zusammenführen, Sicherheit hinzufügen, Text extrahieren) - nichts davon ist mit dem Direct-to-File-Ansatz von PDF Duo möglich. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Konvertierung von URL in PDF

Vor (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.ConvertUrl("https://www.example.com", "webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.ConvertUrl("https://www.example.com", "webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
Imports PDFDuo
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        converter.ConvertUrl("https://www.example.com", "webpage.pdf")
        Console.WriteLine("Webpage converted to PDF!")
    End Sub
End Module
$vbLabelText   $csharpLabel

Nach (IronPDF):

// 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");
        Console.WriteLine("Webpage converted to 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");
        Console.WriteLine("Webpage converted to 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")
        Console.WriteLine("Webpage converted to PDF!")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDF Duo verwendet für die URL-Konvertierung dieselbe Klasse HtmlToPdfConverter wie ConvertUrl(url, outputPath).IronPDF verwendet ChromePdfRenderer mit der dedizierten Methode RenderUrlAsPdf(url), die ein PdfDocument-Objekt zurückgibt.

Ein entscheidender Vorteil ist, dass die Chromium-basierte Rendering-Engine von IronPDF moderne CSS3- und JavaScript-Unterstützung bietet, während die unbekannte Rendering-Engine von PDF Duo die CSS/JavaScript-Unterstützung unsicher und die Rendering-Qualität unvorhersehbar macht. Erfahren Sie mehr über die URL in PDF Konvertierung.

Beispiel 3: PDF-Zusammenführung

Vor (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        merger.AddFile("document1.pdf");
        merger.AddFile("document2.pdf");
        merger.Merge("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        merger.AddFile("document1.pdf");
        merger.AddFile("document2.pdf");
        merger.Merge("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports PDFDuo
Imports System

Class Program
    Shared Sub Main()
        Dim merger As New PdfMerger()
        merger.AddFile("document1.pdf")
        merger.AddFile("document2.pdf")
        merger.Merge("merged.pdf")
        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")
        Dim merged = PdfDocument.Merge(pdf1, pdf2)
        merged.SaveAs("merged.pdf")
        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Dieses Beispiel zeigt einen grundlegenden architektonischen Unterschied. PDF Duo verwendet eine spezielle Klasse PdfMerger mit einer Methode AddFile() zum Einreihen von Dateien und anschließend Merge() zum Kombinieren und Speichern in einem Schritt.

IronPDF verwendet ein anderes Muster: Jedes PDF wird als PdfDocument mit PdfDocument.FromFile() geladen, anschließend werden sie mit der statischen Methode PdfDocument.Merge() kombiniert. Dies gibt ein neues PdfDocument-Objekt zurück, das Sie separat mit SaveAs() speichern.

Der IronPDF-Ansatz bietet mehr Flexibilität: Sie können jede der PDF-Dateien vor dem Zusammenführen bearbeiten, Wasserzeichen in das zusammengeführte Ergebnis einfügen, Sicherheitseinstellungen vornehmen und vieles mehr. Um viele Dateien zusammenzuführen, können Sie LINQ verwenden:

var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Dim paths = {"document1.pdf", "document2.pdf", "document3.pdf"}
Dim pdfs = paths.Select(AddressOf PdfDocument.FromFile).ToList()
Dim merged = PdfDocument.Merge(pdfs)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

Erfahren Sie mehr über das Zusammenführen und Aufteilen von PDFs.


Neue Funktionen nach der Migration

Nach der Migration zu IronPDF erhalten Sie Funktionen, die PDF Duo einfach nicht bieten kann:

Kopf- und Fußzeilen mit Seitenzahlen

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    MaxHeight = 25
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    MaxHeight = 25
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    .MaxHeight = 25
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    .MaxHeight = 25
}

Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
$vbLabelText   $csharpLabel

PDF Duo unterstützt keine Kopf- oder Fußzeilen - es gibt keine entsprechende Funktionalität.IronPDF bietet vollständige HTML/CSS-Unterstützung mit integrierten Platzhaltern für dynamische Inhalte wie Seitenzahlen. Siehe den Headers and Footers Guide.

Wasserzeichen

using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(
    "<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
    45,
    VerticalAlignment.Middle,
    HorizontalAlignment.Center);

pdf.SaveAs("watermarked.pdf");
using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(
    "<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
    45,
    VerticalAlignment.Middle,
    HorizontalAlignment.Center);

pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Imports IronPdf.Editing

Dim pdf = PdfDocument.FromFile("document.pdf")

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>", 45, VerticalAlignment.Middle, HorizontalAlignment.Center)

pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

PDF Duo unterstützt keine Wasserzeichen.IronPDF bietet HTML-basierte Wasserzeichen mit vollständiger CSS-Styling-Unterstützung.

Passwortschutz

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

PDF Duo unterstützt keinen Passwortschutz und keine Sicherheitseinstellungen.

Textextraktion

var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()
$vbLabelText   $csharpLabel

PDF Duo unterstützt keine Textextraktion.


Kritische Hinweise zur Migration

Margins Objekt zu einzelnen Eigenschaften

PDF Duo verwendet ein einzelnes Margins Objekt;IronPDF verwendet individuelle Eigenschaften:

// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)

// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)

// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
' PDF Duo:
New Margins(top:=20, right:=15, bottom:=20, left:=15)

' IronPDF:
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginRight = 15
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
$vbLabelText   $csharpLabel

Benennung von Methoden speichern

Verschiedene Methodennamen zum Speichern:

// PDF Duo:
document.Save("output.pdf");

// IronPDF:
pdf.SaveAs("output.pdf");
// PDF Duo:
document.Save("output.pdf");

// IronPDF:
pdf.SaveAs("output.pdf");
' PDF Duo:
document.Save("output.pdf")

' IronPDF:
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Laden von PDFs

Verschiedene Methodennamen für das Laden:

// PDF Duo:
PDFDocument.Load("document.pdf")

// IronPDF:
PdfDocument.FromFile("document.pdf")
// PDF Duo:
PDFDocument.Load("document.pdf")

// IronPDF:
PdfDocument.FromFile("document.pdf")
' PDF Duo:
PDFDocument.Load("document.pdf")

' IronPDF:
PdfDocument.FromFile("document.pdf")
$vbLabelText   $csharpLabel

Einstellungen Objekt zu Eigenschaften

PDF Duo verwendet Einstellungsobjekte, die an den Konstruktor übergeben werden;IronPDF verwendet Eigenschaften:

// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);

// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);

// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDF Duo:
Dim settings As New PDFSettings With {.PageSize = PageSize.A4}
Dim converter As New HtmlToPdfConverter(settings)

' IronPDF:
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
$vbLabelText   $csharpLabel

Funktionsvergleich

Feature PDF Duo .NET IronPDF
HTML zu PDF Basic Vollständig CSS3, JavaScript
URL zu PDF Basic Vollständig mit Autorisierungsunterstützung
PDF-Zusammenführung Ja Ja
Kopf-/Fußzeilen Nein Volle HTML-Unterstützung
Seitenzahlen Nein Eingebaute Platzhalter
Wasserzeichen Nein HTML-basiert
Passwortschutz Nein Vollständige Sicherheitsoptionen
Formular ausfüllen Nein Ja
Digitale Signaturen Nein Ja
Textextraktion Nein Ja
PDF in Bilder Nein Ja
Async-Unterstützung Unbekannt Vollständig async/await
.NET Core/5+ Unbekannt Unterstützt

Migrations-Checkliste

Vor der Migration

  • Finde alle PDF Duo-Referenzen im Quellcode
  • Dokumentieren Sie die aktuellen Einstellungen (Seitengröße, Ränder usw.).
  • Liste aller verwendeten PDF-Operationen
  • Möglichkeiten für neue Funktionen identifizieren (Header, Wasserzeichen, Sicherheit) -IronPDF-Lizenzschlüssel erhalten

Paketänderungen

  • Entfernen Sie das NuGet Paket PDFDuo.NET
  • Installieren Sie das NuGet Paket IronPdf: dotnet add package IronPdf
  • Namespace-Importe von using PDFDuo; auf using IronPdf; aktualisieren

Code-Änderungen

  • Lizenzschlüsselkonfiguration beim Start hinzufügen
  • Ersetzen Sie HtmlToPdfConverter durch ChromePdfRenderer
  • Ersetzen Sie ConvertHtmlString(html, path) durch RenderHtmlAsPdf(html).SaveAs(path)
  • Ersetzen Sie ConvertUrl(url, path) durch RenderUrlAsPdf(url).SaveAs(path)
  • Ersetzen Sie das Muster PdfMerger durch das Muster PdfDocument.Merge()
  • Konvertiere das Margins-Objekt in einzelne Randeigenschaften
  • Ersetzen Sie Save() durch SaveAs()
  • Ersetzen Sie Load() durch FromFile()

Nach der Migration

  • Führen Sie Regressionstests durch, um die PDF-Ausgabe zu vergleichen.
  • Überprüfen Sie, ob Seitengrößen und Ränder übereinstimmen.
  • Test mit komplexem HTML/CSS (die moderne Engine von IronPDF sollte damit besser zurechtkommen)
  • Neue Funktionen hinzufügen (Kopf- und Fußzeilen, Wasserzeichen, Sicherheit)
  • Dokumentation aktualisieren

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