Zum Fußzeileninhalt springen
VIDEOS

Wie man HTML in PDF in einer ASP.NET MVC-Ansicht konvertiert

Durch die Migration von PDFsharpzu IronPDF wandeln Sie Ihren PDF-Generierungs-Workflow vom manuellen, koordinatenbasierten Zeichnen zur modernen HTML/CSS-Vorlagenerstellung. Diese Anleitung bietet einen schrittweisen Migrationsweg, der das GDI+-Stil-Positionieren durch Webtechnologien ersetzt, die Entwicklungszeit reduziert und die PDF-Generierung wartbar durch Standard-HTML/CSS-Kenntnisse macht.

Warum Von PDFsharpZu IronPDF Migrieren

Verständnis von PDFsharp

PDFsharp ist eine Low-Level-PDF-Erstellungsbibliothek, die Entwicklern ermöglicht, PDF-Dokumente programmatisch zu erzeugen. Veröffentlicht unter der MIT-Lizenz und gewartet vom PDFsharp-Team (ursprünglich empira Software GmbH), zielt PDFsharp6.x auf .NET 8/9/10 und .NET Standard 2.0 ab und läuft plattformübergreifend auf Windows, Linux und macOS über den Core-Build. PDFsharpfungiert hauptsächlich als Werkzeug zum Zeichnen und Erstellen von PDFs von Grund auf mit einer GDI+-Stil-API, die je nach Projektcharakter sowohl vorteilhaft als auch einschränkend sein kann.

PDFsharp wird manchmal fälschlicherweise als HTML-zu-PDF-Konverter angesehen, was es nicht ist. Der Zweck ist ausschließlich auf die programmatische Erstellung von PDF-Dokumenten ausgerichtet. Während es ein Community-Add-On, HtmlRenderer.PdfSharp (von ArthurHub), gibt, das HTML-Darstellungsfähigkeiten bieten soll, deckt es nur HTML 4.01 / CSS-Level 2 ab — keine modernen CSS-Features wie Flexbox, Grid oder JavaScript.

Das Problem der Koordinatenberechnung

Der GDI+-Ansatz von PDFsharpbedeutet, dass Sie:

  • 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 PDFsharperfordert ein tiefes Verständnis der Positionierung mit Koordinaten, was oft Herausforderungen bei der Erstellung komplexer Layouts darstellt.

PDFsharpvs 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 (HTML 4.01 / CSS 2 über HtmlRenderer-Add-On) 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 Aktiv (6.x Linie) 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 auf modernem .NET bietet IronPDF einen Ansatz, der Koordinatenberechnungen eliminiert und Webentwicklungskompetenzen 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 -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# Remove PDFsharp(official PDFsharp-Team package IDs; case-sensitive on case-sensitive feeds)
dotnet remove package PDFsharp
# dotnet remove package PDFsharp-WPF        # if you used the WPF build
# dotnet remove package PDFsharp-GDI        # if you used the GDI build
# dotnet remove package PDFsharp-MigraDoc   # if you used MigraDoc on top
# dotnet remove package PdfSharpCore        # community .NET Standard port

# Add IronPDF
dotnet add package IronPdf
# Remove PDFsharp(official PDFsharp-Team package IDs; case-sensitive on case-sensitive feeds)
dotnet remove package PDFsharp
# dotnet remove package PDFsharp-WPF        # if you used the WPF build
# dotnet remove package PDFsharp-GDI        # if you used the GDI build
# dotnet remove package PDFsharp-MigraDoc   # if you used MigraDoc on top
# dotnet remove package PdfSharpCore        # community .NET Standard port

# 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";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

PDFsharp-Nutzung identifizieren

# Find all PDFsharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
# Find all PDFsharpusages 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;
Imports IronPdf
Imports IronPdf.Editing
$vbLabelText   $csharpLabel

Kern-API-Zuordnungen

PDFsharp API IronPDF API
new PdfDocument() ChromePdfRenderer.RenderHtmlAsPdf()
document.AddPage() Automatisch
XGraphics.FromPdfPage() Nicht erforderlich
XGraphics.DrawString() HTML <p>, <h1>, usw.
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

Before (PDFsharp):

// NuGet: Install-Package PDFsharp (official PDFsharp-Team package, MIT)
// PDFsharpdoes NOT support HTML-to-PDF natively. The community add-on
// HtmlRenderer.PdfSharp covers HTML 4.01 / CSS level 2 only (no flexbox, grid, JS).
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 (official PDFsharp-Team package, MIT)
// PDFsharpdoes NOT support HTML-to-PDF natively. The community add-on
// HtmlRenderer.PdfSharp covers HTML 4.01 / CSS level 2 only (no flexbox, grid, JS).
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");
    }
}
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
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        //IronPDF has 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()
    {
        //IronPDF has 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 = 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
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den größten Unterschied zwischen den beiden Bibliotheken. PDFsharpbietet keine eingebaute HTML zu PDF-Konvertierung—Sie müssen manuell ein PdfDocument erstellen, ein PdfPage hinzufügen, ein XGraphics Objekt erhalten, ein XFont erstellen und DrawString() mit XRect Koordinaten verwenden.

IronPDF bietet natives HTML zu PDF-Rendering durch ChromePdfRenderer. Die RenderHtmlAsPdf() Methode akzeptiert HTML-Strings und konvertiert sie intern mithilfe eines Chromium-Engines.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

Before (PDFsharp):

// NuGet: Install-Package PDFsharp (official PDFsharp-Team package, MIT)
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);
        // Note: in PDFsharp6.x, XFontStyle was renamed to XFontStyleEx
        XFont font = new XFont("Arial", 20, XFontStyleEx.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 (official PDFsharp-Team package, MIT)
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);
        // Note: in PDFsharp6.x, XFontStyle was renamed to XFontStyleEx
        XFont font = new XFont("Arial", 20, XFontStyleEx.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

Class Program
    Shared 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)
        ' Note: in PDFsharp6.x, XFontStyle was renamed to XFontStyleEx
        Dim font As XFont = New XFont("Arial", 20, XFontStyleEx.Bold)

        ' Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red, New XPoint(200, 400))

        document.Save("modified.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            FontFamily = "Arial",
            IsBold = true,
            FontColor = 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()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            FontFamily = "Arial",
            IsBold = true,
            FontColor = 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()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

        ' Open existing PDF
        Dim pdf = PdfDocument.FromFile("existing.pdf")

        ' Add text stamp/watermark
        Dim textStamper = New TextStamper() With {
            .Text = "Watermark Text",
            .FontSize = 20,
            .FontFamily = "Arial",
            .IsBold = True,
            .FontColor = IronSoftware.Drawing.Color.Red,
            .VerticalAlignment = VerticalAlignment.Middle,
            .HorizontalAlignment = HorizontalAlignment.Center
        }

        pdf.ApplyStamp(textStamper)
        pdf.SaveAs("modified.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

PDFsharp erfordert das Öffnen des PDF mit PdfReader.Open(), das Festlegen von PdfDocumentOpenMode.Modify, den Zugriff auf eine Seite, das Erstellen eines XGraphics Objekts, das Erstellen eines XFont mit Stil und das Verwenden von DrawString() mit einem XPoint, das genaue X,Y-Koordinaten (200, 400) angibt.

IronPDF vereinfacht dies mit PdfDocument.FromFile(), einem TextStamper Objekt mit deklarativen Eigenschaften (Text, FontSize, FontFamily, IsBold, FontColor, VerticalAlignment, HorizontalAlignment) und ApplyStamp(). Es sind keine Koordinatenberechnungen erforderlich - geben Sie einfach die Ausrichtung an und IronPDF übernimmt die Positionierung. Beachten Sie, dass das IronPdf.Editing-Namespace für die Stempelfunktionalität erforderlich ist.

Beispiel 3: PDF mit Bildern erstellen

Before (PDFsharp):

// NuGet: Install-Package PDFsharp (official PDFsharp-Team package, MIT)
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 (official PDFsharp-Team package, MIT)
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

Class Program
    Shared 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 Class
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // 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()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // 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

Module Program
    Sub Main()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

        ' Create PDF from HTML with image
        Dim renderer As 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 Module
$vbLabelText   $csharpLabel

PDFsharp erfordert das Erstellen eines neuen PdfDocument, das Hinzufügen eines PdfPage, das Erhalten von XGraphics, das Laden eines XImage aus Datei, das Berechnen von Breite und Höhe, die Verwendung von DrawImage() mit genauen Koordinaten (50, 50, 200, 200), dann das separate Hinzufügen von Text mit DrawString().

IronPDF verwendet standardmäßiges HTML mit einem <img>-Tag und CSS-Styling (style='width:200px; Höhe: 200px;&#39;). Keine Koordinatenberechnungen erforderlich - das Layout wird von CSS übernommen.IronPDF bietet 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: manual positioning
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
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);
Imports PdfSharp.Drawing
Imports IronPdf

' PDFsharp: manual positioning
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)
$vbLabelText   $csharpLabel

Schriftart-Migration

// PDFsharp: XFont objects (PDFsharp 6.x renamed XFontStyle to XFontStyleEx)
var titleFont = new XFont("Arial", 24, XFontStyleEx.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 (PDFsharp 6.x renamed XFontStyle to XFontStyleEx)
var titleFont = new XFont("Arial", 24, XFontStyleEx.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 (PDFsharp 6.x renamed XFontStyle to XFontStyleEx)
Dim titleFont As New XFont("Arial", 24, XFontStyleEx.Bold)
Dim bodyFont As New XFont("Times New Roman", 12)

' IronPDF: CSS font properties
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>"
$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");
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports IronPdf

' PDFsharp: PdfReader.Open()
Dim document As PdfDocument = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify)

' IronPDF: PdfDocument.FromFile()
Dim pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")
$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");
' PDFsharp: document.Save()
document.Save("output.pdf")

' IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf")
$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
' 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
$vbLabelText   $csharpLabel

Neue Funktionen nach der Migration

Nach der Migration zu IronPDF erhalten Sie Fähigkeiten, die PDFsharpnicht 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>")
$vbLabelText   $csharpLabel
var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
Dim pdf = renderer.RenderUrlAsPdf("https://example.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);
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
$vbLabelText   $csharpLabel

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>")
$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

  • Inventarisieren Sie alle PDFsharp-Verwendungen in der Codebasis
  • 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 PDFsharp NuGet-Paket (offizielles PDFsharp-Team-Paket)
  • Entfernen Sie PDFsharp-WPF, PDFsharp-GDI oder PDFsharp-MigraDoc, falls verwendet
  • Entfernen Sie PdfSharpCore, wenn Sie den Community .NET Standard-Port verwendet haben
  • Installieren Sie das IronPdf NuGet-Paket: dotnet add package IronPdf

Code-Änderungen

  • Aktualisieren Sie die Namensraum-Importe (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 XFont durch CSS-Schriftarteneigenschaften
  • Ersetzen Sie XPen durch CSS-Farben/Ränder
  • Ersetzen Sie XGraphics.DrawString() durch HTML-Textelemente
  • Ersetzen Sie XGraphics.DrawImage() durch HTML-<img>-Tags
  • Ersetzen Sie PdfReader.Open() durch PdfDocument.FromFile()
  • Ersetzen Sie document.Save() durch pdf.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).

Hinweis:PDFsharp ist ein Warenzeichen des jeweiligen Eigentümers. Diese Seite ist nicht mit dem PDFsharp-Team oder empira Software GmbH verbunden, wird nicht von ihnen unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an