Wie man von ExpertPdf zu IronPDF in C# migriert
ExpertPdf ist ein kommerzieller HTML-zu-PDF-Konverter for .NET, der Entwicklern schon seit vielen Jahren dient. ExpertPdf steht jedoch in der heutigen, sich schnell entwickelnden Entwicklungslandschaft vor großen Herausforderungen: eine seit 2018 eingefrorene Dokumentation, die Abhängigkeit von einer veralteten Chrome-Version, die moderne CSS3-Funktionen vermissen lässt, Premium-Preise von 550 bis 1.200 US-Dollar für eine veraltete Technologie und eine fragmentierte Produktsuite, die separate Lizenzen für das Zusammenführen, die Sicherheit und das Aufteilen erfordert. Dieser umfassende Leitfaden bietet einen schrittweisen Migrationspfad von ExpertPdf zu IronPDF- einer modernen .NET-PDF-Bibliothek mit dem neuesten Chromium-Rendering, monatlichen Updates und einer All-in-One-Paketarchitektur.
Warum von ExpertPdf zu IronPDF migrieren?
ExpertPdf stellt mehrere Herausforderungen, die Entwicklungsteams dazu veranlassen, moderne Alternativen zu bewerten. Das Verständnis dieser Aspekte ist für die Planung Ihrer Migrationsstrategie unerlässlich.
Die ExpertPdf-Probleme
-
Dokumentation seit 2018 eingefroren: Die Dokumentation von ExpertPdf wurde seit über 6 Jahren nicht mehr aktualisiert. Die Suche nach aktuellen Informationen, Beispielen und Best Practices wird immer schwieriger, da sich das .NET-Ökosystem weiterentwickelt.
-
Veraltete Chrome-Version: ExpertPdf verwendet für die Darstellung eine ältere Version von Chrome. Moderne CSS3-Funktionen (Flexbox, Grid, CSS-Variablen) werden möglicherweise nicht korrekt wiedergegeben, und Sicherheits-Patches werden nicht angewendet.
-
Hohe Preise für veraltete Technologie: ExpertPdf verlangt 550 bis 1.200 US-Dollar pro Lizenz und liefert dabei veraltete Rendering-Technologie.
-
Fragmentierte Suite: ExpertPdf verkauft separate Pakete für verschiedene Funktionen – HtmlToPdf Converter, PDF Merger, PDF Security, PDF Splitter und PDF to Image – für die jeweils eine separate Lizenzierung erforderlich ist.
- Eingeschränkte Unterstützung für modernes .NET : ExpertPdf bietet zwar .NET Core Pakete an, diese hinken jedoch den modernen .NET Versionen und -Praktiken hinterher.
Architektur-Vergleich
| Aspekt | ExpertPdf | IronPDF |
|---|---|---|
| Dokumentation | Eingefroren seit 2018 | Kontinuierlich aktualisiert |
| Rendering Engine | Legacy Chrome | Neuestes Chromium |
| CSS-Unterstützung | Eingeschränktes CSS3 | Vollständiges CSS3 (Flexbox, Grid) |
| Preis | $550-$1,200 | Konkurrenzfähige Preise |
| Aktualisierungshäufigkeit | Unregelmäßig | Monatliche Veröffentlichungen |
| Produktmodell | Fragmentiert (5+ DLLs) | All-in-One-Bibliothek |
| Modernes .NET | Beschränkt | .NET 6/7/8/9+ nativ |
| Async-Unterstützung | Beschränkt | Vollständig async/await |
Wichtige Vorteile der Migration
- Modernes Rendering: Neueste Chromium-Engine für pixelgenaue Ausgabe
- Komplettpaket: PDF-Erstellung, Zusammenführung, Sicherheit und Extraktion in einem NuGet
- Aktive Weiterentwicklung: Monatliche Updates mit neuen Funktionen und Sicherheitspatches
- Bessere Dokumentation: Umfassende Tutorials und Beispiele
- Echte Plattformunabhängigkeit: Unterstützung für Windows, Linux, macOS und Docker.
Vorbereitung auf die Migration
Voraussetzungen
Stellen Sie sicher, dass Ihre Umgebung diese Anforderungen erfüllt:
- .NET Framework 4.6.2+ oder .NET Core 3.1 / .NET 5-9
- Visual Studio 2019+ oder VS Code mit C#-Erweiterung
- NuGet Package Manager Zugang
- IronPDF-Lizenzschlüssel (kostenlose Testversion erhältlich unter ironpdf.com)
Audit ExpertPdfVerwendung
Führen Sie diese Befehle in Ihrem Lösungsverzeichnis aus, um alle ExpertPdf-Referenzen zu identifizieren:
# Find all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
Übliche ExpertPdf-Pakete, nach denen Sie suchen sollten:
ExpertPdf.HtmlToPdf- HTML zu PDF KonvertierungExpertPdf.PDFMerge- PDF-ZusammenführungExpertPdf.PDFSecurity- Verschlüsselung und PasswörterExpertPdf.PDFSplit- PDF-AufteilungExpertPdf.PdfToImage- PDF-zu-Bild-Konvertierung
Verständnis der Core Pattern Änderung
ExpertPdf verwendet PdfConverter mit direkten Byte-Array-Rückgabemethoden.IronPDF verwendet ChromePdfRenderer zurückgegebene PdfDocument Objekte, die vor dem Speichern zusätzliche Bearbeitungsmöglichkeiten bieten.
Schritt-für-Schritt-Migrationsprozess
Schritt 1: NuGet-Pakete aktualisieren
Entfernen Sie alle ExpertPdf-Pakete und installieren Sie IronPDF:
# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# Install IronPDF(includes all features)
dotnet add package IronPdf
# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# Install IronPDF(includes all features)
dotnet add package IronPdf
Schritt 2: Namensraumreferenzen aktualisieren
Ersetzen Sie die ExpertPdf-Namensräume durch IronPDF:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
Schritt 3: Lizenz konfigurieren
ExpertPdf verwendet eine Lizenzierung pro Konverter.IronPDF verwendet eine einzige globale Lizenz:
// 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"
Komplette API-Migrationsreferenz
Kernklassen-Zuordnung
| ExpertPdf-Klasse | IronPDF-Äquivalent |
|---|---|
PdfConverter |
ChromePdfRenderer |
PdfDocumentOptions |
ChromePdfRenderOptions |
PdfHeaderOptions |
TextHeaderFooter oder HtmlHeaderFooter |
PdfFooterOptions |
TextHeaderFooter oder HtmlHeaderFooter |
PDFMerge |
PdfDocument.Merge() |
Methoden-Mapping
| ExpertPdf-Methode | IronPDF-Methode |
|---|---|
pdfConverter.GetPdfBytesFromHtmlString(html) |
renderer.RenderHtmlAsPdf(html).BinaryData |
pdfConverter.GetPdfBytesFromUrl(url) |
renderer.RenderUrlAsPdf(url).BinaryData |
pdfConverter.GetPdfBytesFromHtmlFile(path) |
renderer.RenderHtmlFileAsPdf(path).BinaryData |
pdfConverter.SavePdfFromUrlToFile(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
Optionen-Zuordnung
| ExpertPdf-Option | IronPDFRenderingOptionen |
|---|---|
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 |
PaperSize = PdfPaperSize.A4 |
PdfDocumentOptions.PdfPageOrientation = Portrait |
PaperOrientation = PdfPaperOrientation.Portrait |
PdfDocumentOptions.MarginTop |
MarginTop |
PdfHeaderOptions.HeaderText |
TextHeader.CenterText |
PdfFooterOptions.FooterText |
TextFooter.RightText |
Konvertierung von Seitennummerierungstoken
ExpertPdf und IronPDF verwenden eine andere Platzhalter-Syntax für Seitenzahlen:
| ExpertPdf | IronPDF |
|---|---|
&p; |
{page} |
&P; |
{total-pages} |
Beispiele für die Code-Migration
HTML-zu-PDF-Konvertierung
Die grundlegende HTML-zu-PDF-Konvertierung demonstriert den Wechsel von ExpertPdf s Byte-Array-Muster zu IronPDF s Dokument-Objekt-Ansatz.
ExpertPdf-Einführung:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Convert HTML string to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes)
Console.WriteLine("PDF created successfully!")
End Sub
End Module
IronPDF-Implementierung:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
Der Ansatz von IronPDF gibt ein PdfDocument-Objekt zurück, wodurch vor dem Speichern zusätzliche Bearbeitungen (Zusammenführen, Wasserzeichen hinzufügen, Sicherheit) möglich sind. Weitere Optionen finden Sie in der HTML zu PDF Dokumentation.
URL zu PDF mit Seiteneinstellungen
ExpertPdf-Einführung:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait
' Convert URL to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")
' Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Module
IronPDF-Implementierung:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
' Save to file
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
IronPDF s RenderingOptions ermöglicht den direkten Zugriff auf Eigenschaften zur Seitenkonfiguration. Weitere Optionen finden Sie in der URL zur PDF-Dokumentation.
Kopf- und Fußzeilen mit Seitenzahlen
Dieses Beispiel verdeutlicht den entscheidenden Unterschied in der Kopf-/Fußzeilenkonfiguration: ExpertPdf verwendet separate Klassen PdfHeaderOptions und PdfFooterOptions mit den Platzhaltern &P;, während IronPDFTextHeaderFooter mit den Platzhaltern {total-pages} verwendet.
ExpertPdf-Einführung:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = True
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header"
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center
' Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = True
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;"
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right
' Convert HTML file to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlFile("input.html")
' Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes)
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
IronPDF-Implementierung:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Configure header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Document Header",
.DrawDividerLine = True
}
' Configure footer with page numbers
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True
}
' Convert HTML file to PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
' Save to file
pdf.SaveAs("output-with-header-footer.pdf")
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
IronPDF bietet mit TextHeaderFooter die Eigenschaften LeftText, CenterText und RightText mit optionalen Trennlinien. Für HTML-basierte Header verwenden Sie HtmlHeaderFooter. Weitere Optionen finden Sie in der Kopf- und Fußzeilen-Dokumentation.
Kritische Hinweise zur Migration
Standort des Lizenzschlüssels
ExpertPdf verwendet eine Lizenzierung pro Konverter.IronPDF verwendet eine einzige globale Lizenz, die einmal beim Start festgelegt wird:
// ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
// ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
' ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"
' IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE"
Konvertierung von Seitennummerierungstoken
Ersetzen Sie ExpertPdf-Tokens durch IronPDF-Platzhalter:
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
Fragmentierte Pakete konsolidiert
Die separaten Pakete von ExpertPdf(PDFMerge, PDFSecurity, PDFSplit, PdfToImage) sind alle im Einzelpaket von IronPDF enthalten:
// ExpertPdf- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// ExpertPdf- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
' ExpertPdf- requires separate PDFMerge package
Dim merger As New PdfMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")
' IronPDF- included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Weitere Optionen zur Zusammenführung finden Sie in der PDF-Dokumentation zur Zusammenführung.
Benutzerdefinierte Seitengrößen
ExpertPdf verwendet Punkte.IronPDF arbeitet mit Millimetern. Konvertieren: points / 72 * 25.4 = mm
Post-Migrations-Checkliste
Überprüfen Sie nach Abschluss der Codemigration Folgendes:
- Visueller Vergleich der generierten PDFs
- Überprüfen Sie Kopf- und Fußzeilen sowie Seitenzahlen
- Sicherheits-/Verschlüsselungseinstellungen testen
- Zusammenführungsvorgänge validieren
- Benutzerdefinierte Seitengrößen prüfen
- Leistungsvergleich
- Plattformübergreifende Tests
- ExpertPdf-Lizenzdateien entfernen
- Dokumentation aktualisieren
Zukunftssicherheit für Ihre PDF-Infrastruktur
Angesichts der bevorstehenden Entwicklung von .NET 10 und der Einführung neuer Sprachfunktionen in C# 14 ist die Wahl einer PDF-Bibliothek mit aktiver Entwicklung und modernem Rendering ein Garant für langfristige Kompatibilität. Die monatlichen Updates von IronPDF und die neueste Chromium-Engine bilden die Grundlage für die PDF-Erzeugung, die auch in den Jahren 2025 und 2026 noch korrekt mit modernen CSS3-Layouts (Flexbox, Grid) funktioniert - im Gegensatz zur veralteten Chrome-Version von ExpertPdf, die auf der Stelle tritt.
Zusätzliche Ressourcen
Die Migration von ExpertPdf zu IronPDF beseitigt die Probleme der eingefrorenen Dokumentation, des veralteten Chrome-Renderings, der fragmentierten Produktlizenzierung und der begrenzten modernen .NET-Unterstützung. Der Übergang zu einer aktiv gepflegten Bibliothek mit der neuesten Chromium-Engine stellt sicher, dass Ihre PDF-Erstellung mit den sich entwickelnden Webstandards und .NET-Frameworks Schritt hält.

