Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von PDFSharp zu IronPDF in C#

Migrieren Sie vonPDFSharpzu IronPDF: Vollständiger C#-Migrationsleitfaden

Durch die Migration vonPDFSharpzuIronPDFwird 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 vonPDFSharpzuIronPDFmigrieren

PDFSharpkennenlernen

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.PDFSharpwird unter der MIT-Lizenz veröffentlicht und gewährt der Entwicklergemeinschaft Freiheit bei der Nutzung und Modifikation.PDFSharpfunktioniert 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 vonPDFSharperfordert ein tiefes Verständnis der Positionierung mit Hilfe von Koordinaten, was oft eine Herausforderung bei der Erstellung komplexer Layouts darstellt.

PDFSharpvsIronPDFVergleich

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, bietetIronPDFeinen modernen Ansatz, der Koordinatenberechnungen überflüssig macht und gleichzeitig die Fähigkeiten von Webentwicklern nutzt.


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 Access: Fähigkeit, NuGet-Pakete zu installieren
  3. IronPDF Lizenz: Beziehen Sie Ihren Lizenzschlüssel von ironPdf.com

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
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";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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" .
SHELL

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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Kern-API-Zuordnungen

PDFSharpAPI IronPDFAPI Notizen
new PdfDocument() ChromePdfRenderer.RenderHtmlAsPdf() Aus HTML erstellen
document.AddPage() Automatisch Aus HTML-Inhalten erstellte Seiten
XGraphics.FromPdfPage() Nicht erforderlich HTML-Elemente verwenden
XGraphics.DrawString() HTML <p>, <h1>, usw. Position mit CSS
XGraphics.DrawImage() HTML <img>-Tag Position mit CSS
XFont CSS font-family, font-size Standard-CSS
XBrush, XPen CSS-Farben/Rahmen Farbe, Hintergrund-Farbe
document.Save() pdf.SaveAs() Ähnliche Funktionalität
PdfReader.Open() PdfDocument.FromFile() Vorhandene PDF-Datei öffnen

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);

        // Handbuch 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);

        // Handbuch 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den größten Unterschied zwischen den beiden Bibliotheken.PDFSharpweist ausdrücklich darauf hin, dass es "keine eingebaute HTML-zu-PDF-Konvertierung" hat - Sie müssen manuell ein PdfDocument erstellen, eine PdfPage hinzufügen, ein XGraphics-Objekt erhalten, einen XFonterstellen und DrawString() mit XRect-Koordinaten verwenden.

IronPDF bietet natives HTML-PDF-Rendering durch ChromePdfRenderer. Die Methode RenderHtmlAsPdf() akzeptiert HTML-Zeichenfolgen und wandelt sie intern mit einer Chromium-Engine um.IronPDFkonvertiert 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 XFontmit Stil und die Verwendung von DrawString() mit einem XPoint, der exakte X,Y-Koordinaten (200, 400) angibt.

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 undIronPDFübernimmt die Positionierung. Beachten Sie, dass der Namensraum 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp erfordert das Erstellen eines neuen PdfDocuments, das Hinzufügen einer PdfPage, das Abrufen von 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; height:200px;'). Keine Koordinatenberechnungen erforderlich - das Layout wird von CSS übernommen.IronPDFbietet auch 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: Handbuch 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: Handbuch 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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>";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ä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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Neue Funktionen nach der Migration

Nach der Umstellung aufIronPDFerhalten Sie Funktionen, diePDFSharpnicht 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>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wasserzeichen mit HTML

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zusammenfassung des Funktionsvergleichs

Feature PDFSharp IronPDF
Koordinatenbasiertes Zeichnen ✗(HTML verwenden)
HTML zu PDF
CSS3-Unterstützung
Flexbox/Grid-Layout
Textstempel Handbuch XGraphics TextStamper
Bildstempel Handbuch XImage ImageStamper
PDFs zusammenführen Handbuch
URL zu PDF
Modernes Web-Rendering Chromium-Engine
Automatische Seitenumbrüche

Migrations-Checkliste

Vor der Migration

  • [Inventarisierung der gesamten PDFSharp-Nutzung in der Codebasis
  • [Identifizieren Sie die Dokumenttypen, die erstellt werden (Berichte, Rechnungen, Zertifikate)
  • [Beachten Sie alle benutzerdefinierten Grafiken oder Zeichenoperationen
  • [Planen Sie die Speicherung des IronPDF-Lizenzschlüssels (Umgebungsvariablen empfohlen)
  • [Testen Sie zunächst mit der IronPDF-Testlizenz

Paketänderungen

  • [NuGet-Paket PdfSharp entfernen
  • [Entfernen Sie das NuGet-Paket PdfSharp-wpf, falls verwendet
  • [Entfernen Sie das NuGet-Paket PdfSharp.Charting, falls verwendet
  • [Installieren Sie das NuGet-Paket IronPdf: dotnet add package IronPdf

Code-Änderungen

  • [Aktualisieren von Namensraum-Importen (Verwendung von PdfSharp.Pdf;Verwendung von IronPdf;)
  • [Hinzufügen von Verwendung von IronPdf.Editing; für die Stempelfunktionalität
  • [Koordinatenbasierte Layouts in HTML/CSS konvertieren
  • [Ersetzen Sie XFontdurch CSS-Schrifteigenschaften
  • [Ersetzen Sie XBrush/XPen durch CSS-Farben/Rahmen
  • [Ersetzen von XGraphics.DrawString()durch HTML-Textelemente
  • [Ersetzen Sie XGraphics.DrawImage()mit HTML <img> Tags
  • [Ersetzen Sie PdfReader.Open()mit PdfDocument.FromFile()
  • [Ersetzen Sie document.Save()mit pdf.SaveAs()
  • [Tabellenzeichnungscode in HTML-Tabellen umwandeln

Post-Migration

  • [Visueller Vergleich der generierten PDFs
  • [Testen mehrseitiger Dokumente
  • [Überprüfen der Schriftartwiedergabe
  • [Fügen Sie bei Bedarf neue Funktionen hinzu (HTML zu PDF, Zusammenführen, Wasserzeichen)

Abschluss

PDFSharp undIronPDFerfüllen unterschiedliche Anforderungen im Bereich der PDF-Erzeugung für C#.PDFSharpeignet sich für Projekte, die eine genaue Kontrolle über das Rendering von Dokumenten ohne zusätzliche Abhängigkeiten erfordern und bei denen Budgetbeschränkungen ein Faktor sind. Für Projekte, die moderne Webstandards oder dynamische Inhalte über HTML erfordern, ist sie jedoch nicht geeignet.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Paradigma: Koordinatenbasiertes Zeichnen → HTML/CSS-Templating
  2. HTML-Unterstützung: Nicht verfügbar → Native Chromium-Wiedergabe
  3. Layout: Manuelle X,Y-Positionierung → CSS Flow/Flexbox/Grid
  4. Schriften: XFont-Objekte → CSS font-family, font-size
  5. Farben: XBrush, XPen→ CSS color, background-color, border
  6. Bilder: XImage.FromFile() + DrawImage() → HTML <img> oder ImageStamper
  7. Text Stamping: XGraphics.DrawString()TextStamper
  8. Dokumentenladen: PdfReader.Open()PdfDocument.FromFile()
  9. Speichern: document.Save()pdf.SaveAs()
  10. Neue Funktionen: PDF-Zusammenführung, URL zu PDF, moderne CSS-Unterstützung und mehr

IronPDF übertrifftPDFSharpin Situationen, die eine moderne HTML-zu-PDF-Konvertierung erfordern, dank seiner robusten Funktionen und Möglichkeiten zur Unterstützung von CSS3, HTML5 und der Manipulation von Dokumenten auf hohem Niveau. Zwar ist eine kostenpflichtige Lizenz erforderlich, aber die erhöhte Produktivität und die modernen Funktionen rechtfertigen oft die Investition.

Entdecken Sie die vollständige IronPDF-Dokumentation, Tutorials und API-Referenz, um Ihre PDFSharp-Migration zu beschleunigen.

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