Migrieren von XFINIUM.PDF zu IronPDF in C#
XFINIUM.PDF ist eine plattformübergreifende PDF-Bibliothek, die umfassende Werkzeuge für die programmgesteuerte Erstellung und Bearbeitung von PDFs in C# bietet. Die Bibliothek bietet zwar zwei Editionen - Generator und Viewer -, aber die Tatsache, dass sie auf koordinatenbasierter Grafikprogrammierung beruht, stellt Entwicklerteams, die dokumentenlastige Anwendungen erstellen, vor große Herausforderungen. Jedes Element muss manuell mit Hilfe von Pixelkoordinaten positioniert werden, wodurch die eigentlich einfachen Dokumente zu komplexen Zeichenübungen werden.
Dieser Leitfaden bietet einen vollständigen Migrationspfad von XFINIUM.PDF zu IronPDF, mit Schritt-für-Schritt-Anleitungen, Code-Vergleichen und praktischen Beispielen für professionelle .NET-Entwickler, die diesen Übergang evaluieren.
Warum von XFINIUM.PDF migrieren
XFINIUM.PDF ist eine Low-Level-PDF-Bibliothek, die auf koordinatenbasierter Grafikprogrammierung beruht und Entwickler dazu zwingt, jedes Element manuell auf der Seite zu positionieren. Dieser Ansatz wird zu einem Alptraum für die Wartung, wenn sich die Anforderungen ändern. Zu den wichtigsten Gründen, warum Entwicklerteams eine Migration in Betracht ziehen, gehören:
Keine HTML-Unterstützung: XFINIUM.PDF kann HTML/CSS nicht direkt in PDF konvertieren. Der Schwerpunkt liegt auf der programmatischen PDF-Erstellung mit Low-Level-Zeichenprimitiven, die für Projekte, die umfangreiche HTML-zu-PDF-Funktionen erfordern, möglicherweise nicht ausreichen.
Koordinatenbasierte API: Für jedes Element auf der Seite ist eine manuelle Positionierung mit Pixelkoordinaten wie DrawString("text", font, brush, 50, 100) erforderlich.
Manuelle Schriftartenverwaltung: Schriftartobjekte müssen explizit mit Klassen wie PdfStandardFont und PdfBrush erstellt und verwaltet werden.
Kein CSS-Styling: Keine Unterstützung für modernes Web-Styling. Farben, Schriftarten und Layouts müssen manuell durch programmatische Methodenaufrufe gehandhabt werden.
Kein JavaScript Rendering: Nur statischer Inhalt. XFINIUM.PDF kann keine dynamischen Webinhalte darstellen oder JavaScript ausführen.
Komplexes Textlayout: Für alles, was über einfache einzeilige Texte hinausgeht, sind manuelle Textmessung und Umbruchberechnungen erforderlich.
Begrenzte Community-Ressourcen: Im Vergleich zu gängigen Lösungen mangelt es an von der Community bereitgestellten Ressourcen wie Beispielen und Tutorials, was es neuen Benutzern erschweren kann, loszulegen.
Das Kernproblem: Grafik-API vs. HTML
XFINIUM.PDF zwingt Sie dazu, wie ein Grafikprogrammierer und nicht wie ein Dokumentendesigner zu denken:
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
' XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50)
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80)
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80)
' ... hundreds of lines for a simple document
IronPDF verwendet vertrautes HTML/CSS:
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML
Dim html As String = "<h1>Invoice</h1><p><b>Customer:</b> " & customer.Name & "</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
IronPDF vs. XFINIUM.PDF: Funktionsvergleich
Das Verständnis der architektonischen Unterschiede hilft technischen Entscheidungsträgern, die Investition in die Migration zu bewerten:
| Feature | XFINIUM.PDF | IronPDF |
|---|---|---|
| HTML zu PDF | Begrenzte HTML-Unterstützung, Schwerpunkt ist die programmatische PDF-Erstellung | Vollständige HTML-zu-PDF-Konvertierung mit umfassender Unterstützung |
| Gemeinschaft & Unterstützung | Kleinere Gemeinschaft, weniger Online-Ressourcen verfügbar | Große Community mit umfangreicher Dokumentation und Tutorials |
| Lizenz | Kommerziell mit entwicklerbasierter Lizenzierung | Kommerziell |
| Plattformübergreifende Unterstützung | Starke plattformübergreifende Fähigkeiten | Unterstützt auch plattformübergreifende Operationen |
| CSS-Unterstützung | No | Vollständig CSS3 |
| JavaScript | No | Vollständiger ES2024 |
| Flexbox/Grid | No | Yes |
| Automatisches Layout | No | Yes |
| Automatische Seitenumbrüche | No | Yes |
| Handbuch Positionierung | Erforderlich | Optional (CSS-Positionierung) |
| Lernkurve | Hoch (Koordinatensystem) | Niedrig (HTML/CSS) |
| Code Verbosity | Sehr hoch | Niedrig |
Schnellstart: XFINIUM.PDF zu IronPDF Migration
Mit diesen grundlegenden Schritten kann die Migration sofort beginnen.
Schritt 1: Ersetzen des NuGet-Pakets
XFINIUM.PDF entfernen:
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf
IronPDF installieren:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Schritt 2: Namespaces aktualisieren
Ersetzen Sie die XFINIUM.PDF-Namensräume durch den IronPDF-Namensraum:
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
Imports IronPdf
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"
Beispiele für die Code-Migration
Konvertierung von HTML in PDF
Der grundlegendste Vorgang offenbart den Komplexitätsunterschied zwischen diesen .NET-PDF-Bibliotheken.
XFINIUM.PDF-Ansatz:
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Actions;
using Xfinium.Pdf.FlowDocument;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfFlowDocument flowDocument = new PdfFlowDocument();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
PdfFlowContent content = new PdfFlowContent();
content.AppendHtml(html);
flowDocument.AddContent(content);
flowDocument.RenderDocument(document);
document.Save("output.pdf");
}
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Actions;
using Xfinium.Pdf.FlowDocument;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfFlowDocument flowDocument = new PdfFlowDocument();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
PdfFlowContent content = new PdfFlowContent();
content.AppendHtml(html);
flowDocument.AddContent(content);
flowDocument.RenderDocument(document);
document.Save("output.pdf");
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Actions
Imports Xfinium.Pdf.FlowDocument
Imports System.IO
Module Program
Sub Main()
Dim document As New PdfFixedDocument()
Dim flowDocument As New PdfFlowDocument()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
Dim content As New PdfFlowContent()
content.AppendHtml(html)
flowDocument.AddContent(content)
flowDocument.RenderDocument(document)
document.Save("output.pdf")
End Sub
End Module
IronPDF-Ansatz:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF erfordert das Erstellen eines PdfFixedDocument, eines PdfFlowDocument, eines PdfFlowContent Objekts, den Aufruf von AppendHtml(), das Hinzufügen von Inhalten zum Flow-Dokument, das Rendern zum Fixed-Dokument und schließlich das Speichern.IronPDF vereinfacht dies auf drei Zeilen: einen Renderer erstellen, HTML rendern und speichern.
Für fortgeschrittene HTML-zu-PDF-Szenarien siehe den HTML-zu-PDF-Konvertierungsleitfaden.
Mehrere PDFs zusammenführen
Die PDF-Zusammenführung zeigt die Unterschiede in der API-Komplexität deutlich auf.
XFINIUM.PDF-Ansatz:
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
Imports Xfinium.Pdf
Imports System.IO
Module Program
Sub Main()
Dim output As New PdfFixedDocument()
Dim file1 As FileStream = File.OpenRead("document1.pdf")
Dim pdf1 As New PdfFixedDocument(file1)
Dim file2 As FileStream = File.OpenRead("document2.pdf")
Dim pdf2 As New PdfFixedDocument(file2)
For i As Integer = 0 To pdf1.Pages.Count - 1
output.Pages.Add(pdf1.Pages(i))
Next
For i As Integer = 0 To pdf2.Pages.Count - 1
output.Pages.Add(pdf2.Pages(i))
Next
output.Save("merged.pdf")
file1.Close()
file2.Close()
End Sub
End Module
IronPDF-Ansatz:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
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");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
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");
}
}
Imports IronPdf
Imports System.Collections.Generic
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")
End Sub
End Class
XFINIUM.PDF erfordert die Erstellung eines Ausgabedokuments, das Öffnen von Dateistreams, das Laden jedes Dokuments, die manuelle Iteration durch die Seiten und das Hinzufügen einer Seite nach der anderen, das Speichern und das Schließen der Streams.IronPDF bietet eine einzige PdfDocument.Merge() Methode, die die gesamte Komplexität intern handhabt.
In der PDF-Zusammenführungsdokumentation finden Sie weitere Zusammenführungsoptionen.
Erstellen von PDFs mit Text und Bildern
Dokumente mit gemischtem Inhalt zeigen den grundlegenden Paradigmenunterschied.
XFINIUM.PDF-Ansatz:
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Core;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(PdfRgbColor.Black);
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
FileStream imageStream = File.OpenRead("image.jpg");
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
imageStream.Close();
document.Save("output.pdf");
}
}
// NuGet: Install-Package Xfinium.Pdf
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Core;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(PdfRgbColor.Black);
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
FileStream imageStream = File.OpenRead("image.jpg");
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
imageStream.Close();
document.Save("output.pdf");
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Graphics
Imports Xfinium.Pdf.Core
Imports System.IO
Class Program
Shared Sub Main()
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
Dim font As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
Dim brush As New PdfBrush(PdfRgbColor.Black)
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50)
Dim imageStream As FileStream = File.OpenRead("image.jpg")
Dim image As New PdfJpegImage(imageStream)
page.Graphics.DrawImage(image, 50, 100, 200, 150)
imageStream.Close()
document.Save("output.pdf")
End Sub
End Class
IronPDF-Ansatz:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim imageBase64 As String = Convert.ToBase64String(File.ReadAllBytes("image.jpg"))
Dim html As String = $"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF erfordert das Erstellen eines Dokuments, das Hinzufügen einer Seite, das Erstellen von Schriftart- und Pinselobjekten, das Zeichnen von Text an bestimmten Koordinaten, das Öffnen eines Bildstreams, das Erstellen eines PdfJpegImage, das Zeichnen des Bildes an Koordinaten mit Abmessungen, das Schließen des Streams und das Speichern. IronPDF verwendet Standard-HTML mit eingebetteten base64-Bildern - der gleiche Ansatz, den Webentwickler täglich verwenden.
XFINIUM.PDF API zu IronPDF Mapping-Referenz
Dieses Mapping beschleunigt die Migration, indem es direkte API-Entsprechungen aufzeigt:
| XFINIUM.PDF | IronPDF |
|---|---|
PdfFixedDocument |
ChromePdfRenderer |
PdfPage |
Automatisch |
page.Graphics.DrawString() |
HTML-Textelemente |
page.Graphics.DrawImage() |
<img> Tag |
page.Graphics.DrawLine() |
CSS border oder <hr> |
page.Graphics.DrawRectangle() |
CSS border on <div> |
PdfStandardFont |
CSS font-family |
PdfRgbColor |
CSS color |
PdfBrush |
CSS-Eigenschaften |
PdfJpegImage |
<img> Tag mit Base64 |
document.Save(stream) |
pdf.SaveAs() oder pdf.BinaryData |
PdfFlowDocument |
RenderHtmlAsPdf() |
PdfFlowContent.AppendHtml() |
RenderHtmlAsPdf() |
Gängige Migrationsprobleme und Lösungen
Ausgabe 1: Koordinatenbasiertes Layout
XFINIUM.PDF: 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
XFINIUM.PDF: Erstellen Sie für jede Schriftart PdfStandardFont- oder PdfUnicodeTrueTypeFont-Objekte.
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; }
</style>
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
Ausgabe 3: Farbverarbeitung
XFINIUM.PDF: Erstellen Sie PdfRgbColor und PdfBrush Objekte für Farben.
Lösung: Verwenden Sie Standard-CSS-Farben:
.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }
.info { color: rgba(0, 0, 255, 0.8); }
Ausgabe 4: Manuelle Seitenumbrüche
XFINIUM.PDF: Verfolgen Sie die Y-Position und erstellen Sie manuell neue Seiten, wenn der Inhalt überläuft.
Lösung:IronPDF sorgt für automatische Seitenumbrüche. Verwenden Sie CSS zur eindeutigen Steuerung:
.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }
Ausgabe 5: Laden von Bildern
XFINIUM.PDF: Dateistreams öffnen, PdfJpegImage Objekte erstellen, an Koordinaten zeichnen, Streams schließen.
Lösung: Verwenden Sie HTML-Tags <img> mit Dateipfaden oder Base64-Daten:
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
XFINIUM.PDF Migration Checkliste
Vor der Migration anfallende Aufgaben
Überprüfen Sie Ihre Codebasis, um die Verwendung von XFINIUM.PDF zu identifizieren:
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
Dokumentieren Sie koordinatenbasierte Layouts und notieren Sie alle X,Y-Positionierungswerte. Identifiziere Schriftart- und Farbobjekte (PdfStandardFont, PdfRgbColor, PdfBrush). Zusammengeführte PDF-Workflows mithilfe von PdfFixedDocument.Pages.Add().
Aufgaben der Code-Aktualisierung
- Xfinium.Pdf NuGet-Paket entfernen
- IronPDF NuGet-Paket installieren
- Namespace-Importe von
Xfinium.PdfaufIronPdfaktualisieren - Konvertieren Sie
DrawString()-Aufrufe in HTML-Textelemente. - Konvertieren Sie
DrawImage()-Aufrufe in HTML-<img>-Tags - Konvertiere
DrawRectangle()undDrawLine()in CSS-Rahmen. - Ersetzen Sie
PdfStandardFontdurch CSSfont-family - Ersetzen Sie
PdfRgbColorundPdfBrushdurch CSS-Farben. - Ersetzen Sie die Zusammenführung der Seitenschleife durch
PdfDocument.Merge() - 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 Aussehen den Erwartungen entspricht
- Überprüfen der Textdarstellung mit dem neuen HTML/CSS-Ansatz
- Bildpositionierung mit CSS überprüfen
- Testseitenumbrüche treten wie erwartet auf
- Prüfen, ob die PDF-Sicherheitseinstellungen korrekt angewendet werden
- Test auf allen Zielplattformen
Die wichtigsten Vorteile der Migration zu IronPDF
Der Wechsel von XFINIUM.PDF zu IronPDF bietet mehrere entscheidende Vorteile:
HTML-basierte Inhaltserstellung: Webentwickler können ihre vorhandenen HTML- und CSS-Kenntnisse nutzen. Sie müssen keine koordinatenbasierten Zeichen-APIs erlernen oder Schrift- und Pinselobjekte verwalten.
Automatisches Layout: Textumbruch, Seitenumbruch und Layoutfluss erfolgen automatisch. Keine manuelle Berechnung von Elementpositionen oder Seitenumbrüchen.
Moderne CSS-Unterstützung: Vollständige CSS3-Unterstützung inklusive Flexbox- und Grid-Layouts. Responsive Designs werden direkt in PDF übersetzt.
Vereinfachte PDF-Operationen: Aufrufe einzelner Methoden für häufige Operationen wie PdfDocument.Merge() ersetzen komplexe Seiteniterationsschleifen.
Aktive Weiterentwicklung: Da die Verbreitung von .NET 10 und C# 14 bis 2026 zunimmt, gewährleisten die regelmäßigen Updates von IronPDF die Kompatibilität mit aktuellen und zukünftigen .NET Versionen.
Umfangreiche Dokumentation: Große Community mit umfassender Dokumentation, Tutorials und Supportressourcen im Vergleich zum kleineren Ökosystem von XFINIUM.PDF.

