Migrieren von PDFSharp zu IronPDF in C#
Durch die Migration von PDFSharp zu IronPDF wird Ihr PDF-Generierungs-Workflow vom manuellen koordinatenbasierten Zeichnen auf modernes HTML/CSS-Templating umgestellt. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der die mühsame Positionierung im GDI+-Stil durch Webtechnologien ersetzt, die Entwicklungszeit drastisch reduziert und die PDF-Erzeugung durch Standard-HTML/CSS-Kenntnisse wartbar macht.
Warum von PDFSharp zu IronPDF migrieren
PDFSharp kennenlernen
PDFSharp ist bekannt als Low-Level-Bibliothek für die PDF-Erstellung, die es Entwicklern ermöglicht, PDF-Dokumente durch einen programmatischen Ansatz zu erzeugen.PDFSharp wird unter der MIT-Lizenz veröffentlicht und gewährt der Entwicklergemeinschaft Freiheit bei der Nutzung und Modifikation.PDFSharp funktioniert in erster Linie als Werkzeug zum Zeichnen und Kompilieren von PDFs von Grund auf, was je nach Art des Projekts sowohl vorteilhaft als auch einschränkend sein kann.
PDFSharp wird manchmal fälschlicherweise für einen HTML-zu-PDF-Konverter gehalten, was es nicht ist. Der Zweck ist ausschließlich auf die programmatische Erstellung von PDF-Dokumenten ausgerichtet. Es gibt zwar ein Add-on, HtmlRenderer.PdfSharp, das HTML-Rendering-Fähigkeiten bieten soll, aber es unterstützt nur CSS 2.1, ohne Unterstützung für moderne CSS-Funktionen wie Flexbox und Grid.
Das Problem der Koordinatenberechnung
PDFSharp's GDI+ Ansatz bedeutet, dass Sie das tun müssen:
- Exakte X,Y-Positionen für jedes Element berechnen
- Manuelles Verfolgen der Inhaltshöhe bei Seitenüberlauf
- Zeilenumbruch und Textmessung selbst erledigen
- Tabellen Zelle für Zelle mit Randberechnungen zeichnen
- Verwalten mehrseitiger Dokumente mit manuellem Seitenumbruch
Die Architektur von PDFSharp erfordert ein tiefes Verständnis der Positionierung mit Hilfe von Koordinaten, was oft eine Herausforderung bei der Erstellung komplexer Layouts darstellt.
PDFSharp vs IronPDF Vergleich
| Feature | PDFSharp | IronPDF |
|---|---|---|
| Lizenz | MIT (kostenlos) | Kommerziell |
| HTML zu PDF Unterstützung | Nein | Ja (HTML5/CSS3-Unterstützung) |
| Moderne CSS-Unterstützung | Nein (nur CSS 2.1) | Ja (Vollständig CSS3) |
| Dokumentenerstellung | Koordinatenbasiertes Zeichnen | HTML/CSS-Vorlagen |
| Layout-System | Manuelle X,Y-Positionierung | CSS Flow/Flexbox/Grid |
| Seitenumbrüche | Manuelle Berechnung | Automatische + CSS-Steuerung |
| Tabellen | Zellen einzeln zeichnen | HTML <table> |
| Styling | Code-basierte Schriftarten/Farben | CSS-Stylesheets |
| Dokument API | Low-Level (Erfordert Koordinaten) | High-Level (Vereinfachte API) |
| Aktualisierungen | Unregelmäßig | Regelmäßig |
IronPDF eignet sich hervorragend für Szenarien, in denen HTML-Dokumente originalgetreu in PDFs konvertiert werden müssen. Diese .NET-Bibliothek unterstützt HTML5 und CSS3, so dass moderne Webstandards eingehalten werden. Dank der nativen HTML-zu-PDF-Funktionen können Entwickler vorhandene Webinhalte oder mit modernen Webtools erstellte Vorlagen nutzen.
Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 bzw. 2026 planen, bietet IronPDF einen modernen Ansatz, der Koordinatenberechnungen überflüssig macht und gleichzeitig die Fähigkeiten von Webentwicklern nutzt.
Bevor Sie beginnen
Voraussetzungen
- .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
- IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.
NuGet-Paketänderungen
# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting
# Add IronPDF
dotnet add package IronPdf
# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting
# Add IronPDF
dotnet add package IronPdf
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"
Identifizieren Sie die Verwendung von PDFSharp
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
Komplette API-Referenz
Namensraumänderungen
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Editing;
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Editing;
Imports IronPdf
Imports IronPdf.Editing
Kern-API-Zuordnungen
| PDFSharp API | IronPDF API |
|---|---|
new PdfDocument() |
ChromePdfRenderer.RenderHtmlAsPdf() |
document.AddPage() |
Automatisch |
XGraphics.FromPdfPage() |
Nicht erforderlich |
XGraphics.DrawString() |
HTML <p>, <h1>, etc. |
XGraphics.DrawImage() |
HTML <img> Tag |
XFont |
CSS font-family, font-size |
XBrush, XPen |
CSS-Farben/Rahmen |
document.Save() |
pdf.SaveAs() |
PdfReader.Open() |
PdfDocument.FromFile() |
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML in PDF
Vor (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
//PDFSharpdoes not have built-in HTML zu PDFconversion
// You need to manually parse HTML and render content
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 12);
// Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.TopLeft);
document.Save("output.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
//PDFSharpdoes not have built-in HTML zu PDFconversion
// You need to manually parse HTML and render content
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 12);
// Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.TopLeft);
document.Save("output.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports System
Class Program
Shared Sub Main()
' PDFSharp does not have built-in HTML to PDF conversion
' You need to manually parse HTML and render content
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage()
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim font As New XFont("Arial", 12)
' Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.TopLeft)
document.Save("output.pdf")
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
//IronPDFhas native HTML zu PDFrendering
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello from IronPDF</h1><p>Easy HTML zu PDFconversion</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
//IronPDFhas native HTML zu PDFrendering
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello from IronPDF</h1><p>Easy HTML zu PDFconversion</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' IronPDF has native HTML to PDF rendering
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Hello from IronPDF</h1><p>Easy HTML to PDF conversion</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Dieses Beispiel verdeutlicht den größten Unterschied zwischen den beiden Bibliotheken.PDFSharp gibt ausdrücklich an, dass es "keine integrierte HTML-zu-PDF-Konvertierung" besitzt – Sie müssen manuell ein PdfDocument erstellen, ein PdfPage hinzufügen, ein XGraphics-Objekt abrufen, ein XFont-Objekt erstellen und DrawString()-Objekte mit XRect-Koordinaten verwenden.
IronPDF bietet natives HTML-zu-PDF-Rendering über ChromePdfRenderer. Die Methode RenderHtmlAsPdf() akzeptiert HTML-Strings und konvertiert diese intern mithilfe einer Chromium-Engine.IronPDF konvertiert HTML-Dateien mühelos in PDF, wobei alle in HTML5 und CSS3 definierten Stile beibehalten werden und keine Koordinatenberechnungen erforderlich sind. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.
Beispiel 2: Text/Wasserzeichen zu vorhandenem PDF hinzufügen
Vor (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
PdfPage page = document.Pages[0];
// Get graphics object
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 20, XFontStyle.Bold);
// Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red,
new XPoint(200, 400));
document.Save("modified.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
PdfPage page = document.Pages[0];
// Get graphics object
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 20, XFontStyle.Bold);
// Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red,
new XPoint(200, 400));
document.Save("modified.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Drawing
Imports System
Module Program
Sub Main()
' Open existing PDF
Dim document As PdfDocument = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify)
Dim page As PdfPage = document.Pages(0)
' Get graphics object
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim font As New XFont("Arial", 20, XFontStyle.Bold)
' Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red, New XPoint(200, 400))
document.Save("modified.pdf")
End Sub
End Module
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add text stamp/watermark
var textStamper = new TextStamper()
{
Text = "Watermark Text",
FontSize = 20,
Color = IronSoftware.Drawing.Color.Red,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("modified.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add text stamp/watermark
var textStamper = new TextStamper()
{
Text = "Watermark Text",
FontSize = 20,
Color = IronSoftware.Drawing.Color.Red,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("modified.pdf");
}
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Module Program
Sub Main()
' Open existing PDF
Dim pdf = PdfDocument.FromFile("existing.pdf")
' Add text stamp/watermark
Dim textStamper = New TextStamper() With {
.Text = "Watermark Text",
.FontSize = 20,
.Color = IronSoftware.Drawing.Color.Red,
.VerticalAlignment = VerticalAlignment.Middle,
.HorizontalAlignment = HorizontalAlignment.Center
}
pdf.ApplyStamp(textStamper)
pdf.SaveAs("modified.pdf")
End Sub
End Module
PDFSharp erfordert das Öffnen der PDF-Datei mit PdfReader.Open() unter Angabe von PdfDocumentOpenMode.Modify, den Zugriff auf eine Seite, das Erstellen eines XGraphics-Objekts, das Erstellen eines XFont-Objekts mit Stil und die Verwendung von DrawString() mit einem XPoint unter Angabe der genauen X,Y-Koordinaten (200, 400).
IronPDF vereinfacht dies mit PdfDocument.FromFile(), einem TextStamper-Objekt mit deklarativen Eigenschaften (Text, FontSize, Color, VerticalAlignment, HorizontalAlignment) und ApplyStamp(). Es sind keine Koordinatenberechnungen erforderlich - geben Sie einfach die Ausrichtung an und IronPDF übernimmt die Positionierung. Beachten Sie, dass der Namespace IronPdf.Editing für die Stempelfunktionalität erforderlich ist.
Beispiel 3: PDF mit Bildern erstellen
Vor (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Create new PDF document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
// Load and draw image
XImage image = XImage.FromFile("image.jpg");
// Calculate size to fit page
double width = 200;
double height = 200;
gfx.DrawImage(image, 50, 50, width, height);
// Add text
XFont font = new XFont("Arial", 16);
gfx.DrawString("Image in PDF", font, XBrushes.Black,
new XPoint(50, 270));
document.Save("output.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Create new PDF document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
// Load and draw image
XImage image = XImage.FromFile("image.jpg");
// Calculate size to fit page
double width = 200;
double height = 200;
gfx.DrawImage(image, 50, 50, width, height);
// Add text
XFont font = new XFont("Arial", 16);
gfx.DrawString("Image in PDF", font, XBrushes.Black,
new XPoint(50, 270));
document.Save("output.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports System
Module Program
Sub Main()
' Create new PDF document
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage()
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Load and draw image
Dim image As XImage = XImage.FromFile("image.jpg")
' Calculate size to fit page
Dim width As Double = 200
Dim height As Double = 200
gfx.DrawImage(image, 50, 50, width, height)
' Add text
Dim font As New XFont("Arial", 16)
gfx.DrawString("Image in PDF", font, XBrushes.Black, New XPoint(50, 270))
document.Save("output.pdf")
End Sub
End Module
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create PDF from HTML with image
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Alternative: Add image to existing PDF
var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
{
VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
};
existingPdf.ApplyStamp(imageStamper);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create PDF from HTML with image
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Alternative: Add image to existing PDF
var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
{
VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
};
existingPdf.ApplyStamp(imageStamper);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create PDF from HTML with image
Dim renderer = New ChromePdfRenderer()
Dim html As String = "
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Alternative: Add image to existing PDF
Dim existingPdf = New ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>")
Dim imageStamper = New IronPdf.Editing.ImageStamper(New Uri("image.jpg")) With {
.VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
}
existingPdf.ApplyStamp(imageStamper)
End Sub
End Class
PDFSharp erfordert das Erstellen eines neuen PdfDocument, das Hinzufügen eines PdfPage, das Abrufen eines XGraphics, das Laden eines XImage aus einer Datei, das Berechnen von Breite und Höhe, die Verwendung von DrawImage() mit exakten Koordinaten (50, 50, 200, 200) und das separate Hinzufügen von Text mit DrawString().
IronPDF verwendet Standard-HTML mit einem <img> Tag und CSS-Styling (style='width:200px; Höhe: 200px;'). Keine Koordinatenberechnungen erforderlich - das Layout wird von CSS übernommen.IronPDF bietet außerdem ImageStamper zum Hinzufügen von Bildern zu bestehenden PDFs mit deklarativen Ausrichtungseigenschaften. Erfahren Sie mehr in unseren Tutorials.
Kritische Hinweise zur Migration
Paradigmen-Wechsel: Koordinaten zu HTML/CSS
Die wichtigste Änderung ist der Wechsel vom koordinatenbasierten Zeichnen zu HTML/CSS:
// PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));
// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));
// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
' PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, New XPoint(50, 50))
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, New XPoint(50, 80))
' IronPDF: Let CSS handle layout
Dim html As String = "
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Schriftart-Migration
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);
// IronPDF: CSS font properties
var html = @"
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);
// IronPDF: CSS font properties
var html = @"
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
Dim titleFont As New XFont("Arial", 24, XFontStyle.Bold)
Dim bodyFont As New XFont("Times New Roman", 12)
Dim html As String = "
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>"
Änderung beim Laden des Dokuments
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
Imports PdfSharp
Imports IronPDF
' PDFSharp: PdfReader.Open()
Dim document As PdfDocument = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify)
' IronPDF: PdfDocument.FromFile()
Dim pdf = PdfDocument.FromFile("existing.pdf")
Methodenänderung speichern
// PDFSharp: document.Save()
document.Save("output.pdf");
// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
// PDFSharp: document.Save()
document.Save("output.pdf");
// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
Seitenzugriff ändern
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];
// IronPDF: Automatischpage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];
// IronPDF: Automatischpage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
' PDFSharp: document.Pages(0)
Dim page As PdfPage = document.Pages(0)
' IronPDF: Automatischpage handling or pdf.Pages(0)
' Pages are created automatically from HTML content
Neue Funktionen nach der Migration
Nach der Umstellung auf IronPDF erhalten Sie Funktionen, die PDFSharp nicht bieten kann:
Natives HTML zu PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>")
Link zur PDF-Datei
var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
PDF-Zusammenführung
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
Wasserzeichen mit HTML
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
Zusammenfassung des Funktionsvergleichs
| Feature | PDFSharp | IronPDF |
|---|---|---|
| Koordinatenbasiertes Zeichnen | ✓ | ✗(HTML verwenden) |
| HTML zu PDF | ✗ | ✓ |
| CSS3-Unterstützung | ✗ | ✓ |
| Flexbox/Grid-Layout | ✗ | ✓ |
| Textstempel | Manual XGraphics | TextStamper |
| Bildstempel | Manual XImage | ImageStamper |
| PDFs zusammenführen | Manual | ✓ |
| URL zu PDF | ✗ | ✓ |
| Modernes Web-Rendering | ✗ | Chromium-Engine |
| Automatische Seitenumbrüche | ✗ | ✓ |
Migrations-Checkliste
Vor der Migration
- Erfassung aller PDFSharp-Nutzungen im Quellcode
- Identifizieren Sie die Arten der generierten Dokumente (Berichte, Rechnungen, Zertifikate).
- Beachten Sie alle benutzerdefinierten Grafiken oder Zeichenvorgänge
- Speicherung des IronPDF-Lizenzschlüssels (Umgebungsvariablen empfohlen)
- Zuerst mit der IronPDF Testlizenz testen
Paketänderungen
- Entfernen Sie das NuGet Paket
PdfSharp - Entfernen Sie das NuGet Paket
PdfSharp-wpf, falls es verwendet wird. - Entfernen Sie das NuGet Paket
PdfSharp.Charting, falls es verwendet wird. - Installieren Sie das NuGet Paket
IronPdf:dotnet add package IronPdf
Code-Änderungen
- Namespace-Importe aktualisieren (
using PdfSharp.Pdf;→using IronPdf;) - Fügen Sie
using IronPdf.Editing;für die Stempelfunktionalität hinzu. - Koordinatenbasierte Layouts in HTML/CSS konvertieren
- Ersetzen Sie
XFontdurch CSS-Schrifteigenschaften - Ersetzen Sie
XPendurch CSS-Farben/Rahmen - Ersetzen Sie
XGraphics.DrawString()durch HTML-Textelemente - Ersetzen Sie
XGraphics.DrawImage()durch die HTML-Tags<img> - Ersetzen Sie
PdfReader.Open()durchPdfDocument.FromFile() - Ersetzen Sie
document.Save()durchpdf.SaveAs() - Tabellenzeichnungscode in HTML-Tabellen konvertieren
Nach der Migration
- Visueller Vergleich der generierten PDFs
- Testen Sie mehrseitige Dokumente
- Schriftartdarstellung überprüfen
- Fügen Sie bei Bedarf neue Funktionen hinzu (HTML zu PDF, Zusammenführen, Wasserzeichen).

