Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von MigraDoc zu IronPDF in C#

Migrieren Sie von MigraDoczu IronPDF: Vollständiger C#-Migrationsleitfaden

Durch die Migration von MigraDoczuIronPDFwird Ihr .NET-PDF-Workflow von einem langwierigen programmatischen Dokumentenmodell, das eine manuelle Element-für-Element-Konstruktion erfordert, auf einen modernen HTML/CSS-basierten Ansatz umgestellt, der die vorhandenen Webentwicklungskenntnisse nutzt. Dieses Handbuch bietet einen umfassenden, schrittweisen Migrationspfad, der die steile Lernkurve des MigraDoc-eigenen Dokumentobjektmodells für professionelle .NET-Entwickler eliminiert.

Warum von MigraDoczuIronPDFmigrieren

Die MigraDoc-Herausforderungen

MigraDoc ist zwar leistungsstark für die programmatische PDF-Erzeugung, hat aber grundlegende Einschränkungen, die sich auf moderne Entwicklungsabläufe auswirken:

  1. Keine HTML-Unterstützung: MigraDocunterstützt HTML nicht direkt. Sie müssen die Dokumente manuell Element für Element mit den Objekten Document, Section, Absatzund Tabelleaufbauen - Sie können keine bestehenden HTML/CSS-Designs verwenden.

  2. Eigenes Dokumentenmodell: MigraDocerfordert das Erlernen eines einzigartigen Dokumentenmodells mit Konzepten wie AddSection(), AddParagraph(), AddTable(), AddRow() und AddCell(). Diese steile Lernkurve ist besonders für Entwickler mit Webentwicklungshintergrund eine Herausforderung.

  3. Beschränkte Gestaltungsmöglichkeiten: MigraDocbietet zwar eine robuste Verwaltung der Dokumentstruktur, aber die Gestaltungsmöglichkeiten sind im Vergleich zu modernen Webtools bescheiden. Eigenschaften wie Format.Font.Size, Format.Font.Bold und Format.Alignment sind im Vergleich zum vollständigen CSS3 eingeschränkt.

  4. Ausführlicher Code: Die Erstellung selbst einfacher Layouts erfordert Dutzende von Codezeilen. Eine einfache Tabelle mit Kopfzeilen kann 15-20 Zeilen MigraDoc-Code erfordern.

  5. Keine JavaScript-Unterstützung: MigraDockann keine dynamischen Inhalte darstellen oder JavaScriptausführen, was die Möglichkeiten für moderne Diagramme und interaktive Elemente einschränkt.

  6. Diagramme sind grundlegend: Die Diagrammfunktionalität von MigraDocist im Vergleich zu modernen JavaScript-Diagrammbibliotheken wie Chart.js oder D3 begrenzt.

MigraDocvsIronPDFVergleich

Feature MigraDoc IronPDF
Definition des Inhalts Programmatisch (Dokument/Abschnitt/Absatz) HTML/CSS
Lernkurve Steep (proprietäres DOM) Einfach (Webkenntnisse)
Gestaltung Begrenzte Eigenschaften Vollständig CSS3
JavaScript Keine Vollständige Ausführung von Chromium
Tabellen Manuelle Spalten-/Zeilendefinition HTML <table>mit CSS
Diagramme Grundlegende MigraDoc-Diagramme Jede JavaScript-Diagrammbibliothek
Bilder Manuelle Größenbestimmung/Positionierung Standard-HTML <img>
Responsive Layouts Nicht unterstützt Flexbox, Grid
Lizenz Offene Quelle (MIT) Kommerziell

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine zukunftssichere Grundlage, die es Entwicklern ermöglicht, vertraute HTML/CSS-Kenntnisse zu nutzen, anstatt ein proprietäres Dokumentenmodell zu erlernen.


Migrationskomplexitätsbewertung

Geschätzter Aufwand nach Merkmalen

Feature Komplexität der Migration Notizen
Einfacher Text Sehr niedrig Absatz → HTML-Elemente
Tabellen Niedrig Tabelle/Zeile/Zelle → HTML <table>
Kopf-/Fußzeilen Niedrig Abschnitt.Kopfzeilen → RenderingOptions
Stile Medium Format-Eigenschaften → CSS-Klassen
Bilder Niedrig Bild hinzufügen → HTML <img>
Diagramme Medium Erfordert JavaScript-Bibliothek

Paradigmen-Verschiebung

Die grundlegende Veränderung bei dieser MigraDoc-Migration ist die Umstellung von programmatischem Dokumentenaufbau auf HTML-first rendering:

MigraDoc: Dokument → AddSection() → AddParagraph() → PdfDocumentRenderer → Save()
IronPDF:   ChromePdfRenderer → RenderHtmlAsPdf(html) → SaveAs()

Dieser Paradigmenwechsel reduziert die Komplexität des Codes drastisch und bietet gleichzeitig unbegrenzte Styling-Möglichkeiten durch CSS.


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 MigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard

# Install IronPDF
dotnet add package IronPdf
# Remove MigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard

# Install 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

Die Verwendung von MigraDocidentifizieren

# Find all MigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
# Find all MigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
SHELL

Komplette API-Referenz

Klassen-Zuordnungen

MigraDoc-Klasse IronPDF-Äquivalent Notizen
Dokument ChromePdfRenderer Renderer verwenden, nicht Dokument
Abschnitt HTML <body> oder <div> Struktureller Container
Absatz HTML <p>, <h1>, usw. Text-Elemente
FormatierterText HTML <span>, <strong>, usw. Inline-Formatierung
Tabelle HTML <table> Mit CSS-Styling
Zeile HTML <tr> Tabellenzeile
Spalte HTML <col> oder CSS Kolumnengestaltung
Zelle HTML <td>, <th> Tabellenzelle
PdfDocumentRenderer ChromePdfRenderer Haupt-Renderer

Methoden-Zuordnungen

MigraDoc-Methode IronPDF-Äquivalent Notizen
document.AddSection() HTML-Struktur Verwenden Sie <div> oder <section>
section.AddParagraph(text) <p>Text</p> HTML-Absatz
section.AddTable() <table> HTML-Tabelle
table.AddColumn(width) CSS Breite Eigenschaft Stil auf <th> oder <td>
table.AddRow() <tr> HTML-Zeile
row.Cells[n].AddParagraph() <td>Inhalt</td> HTML-Zelle
renderer.RenderDocument() RenderHtmlAsPdf(html) In PDF rendern
pdfDocument.Save(Pfad) pdf.SaveAs(Pfad) Datei speichern

Platzhalter-Zuordnungen (Kopf-/Fußzeilen)

MigraDoc-Methode IronPDFPlatzhalter Notizen
AddPageField() {Seite} Aktuelle Seitenzahl
AddNumPagesField() {Gesamtseiten} Gesamtseitenzahl
AddDateField() {Datum} Aktuelles Datum

Beispiele für die Code-Migration

Beispiel 1: Grundlegendes HTML zu PDF (Der grundlegende Unterschied)

Vor (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // MigraDocdoesn't support HTML directly
        // Must manually create document structure
        Document document = new Document();
        Section section = document.AddSection();

        Paragraph paragraph = section.AddParagraph();
        paragraph.AddFormattedText("Hello World", TextFormat.Bold);
        paragraph.Format.Font.Size = 16;

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // MigraDocdoesn't support HTML directly
        // Must manually create document structure
        Document document = new Document();
        Section section = document.AddSection();

        Paragraph paragraph = section.AddParagraph();
        paragraph.AddFormattedText("Hello World", TextFormat.Bold);
        paragraph.Format.Font.Size = 16;

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den grundlegenden Unterschied zwischen MigraDocund IronPDF. MigraDocerfordert das Erstellen eines Dokuments, das Hinzufügen eines Abschnitts, das Hinzufügen eines Absatzes, die Verwendung von AddFormattedText() mit TextFormat.Bold, Setzen von Format.Font.Size, Erstellen eines PdfDocumentRenderer, Zuweisen des Dokuments, Aufrufen von RenderDocument() und schließlich Speichern. Das sind mehr als 10 Zeilen Code mit mehreren Objekten.

IronPDF erreicht das gleiche Ergebnis in 3 Zeilen: einen Renderer erstellen, HTML rendern und speichern. Das HTML-Tag <h1> sorgt natürlich für die fette, große Überschrift. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Tabellen erstellen

Vor (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        Table table = section.AddTable();
        table.Borders.Width = 0.75;

        Column column1 = table.AddColumn("3cm");
        Column column2 = table.AddColumn("3cm");

        Row row1 = table.AddRow();
        row1.Cells[0].AddParagraph("Name");
        row1.Cells[1].AddParagraph("Age");

        Row row2 = table.AddRow();
        row2.Cells[0].AddParagraph("John");
        row2.Cells[1].AddParagraph("30");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("table.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        Table table = section.AddTable();
        table.Borders.Width = 0.75;

        Column column1 = table.AddColumn("3cm");
        Column column2 = table.AddColumn("3cm");

        Row row1 = table.AddRow();
        row1.Cells[0].AddParagraph("Name");
        row1.Cells[1].AddParagraph("Age");

        Row row2 = table.AddRow();
        row2.Cells[0].AddParagraph("John");
        row2.Cells[1].AddParagraph("30");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("table.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlTable = @"
            <table border='1'>
                <tr><th>Name</th><th>Age</th></tr>
                <tr><td>John</td><td>30</td></tr>
            </table>";

        var pdf = renderer.RenderHtmlAsPdf(htmlTable);
        pdf.SaveAs("table.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlTable = @"
            <table border='1'>
                <tr><th>Name</th><th>Age</th></tr>
                <tr><td>John</td><td>30</td></tr>
            </table>";

        var pdf = renderer.RenderHtmlAsPdf(htmlTable);
        pdf.SaveAs("table.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Erstellung von MigraDoc-Tabellen erfordert das Verständnis der Hierarchie von Tabelle, Spalte, Zeile und Zelle. Sie müssen explizit Spalten mit AddColumn() hinzufügen, Zeilen mit AddRow() erstellen, auf Zellen nach Index mit Cells[n] zugreifen und Inhalte mit AddParagraph() hinzufügen. Der Rahmen wird über table.Borders.Width eingestellt.

IronPDF verwendet die Standard-HTML-Tabellensyntax, die jeder Webentwickler kennt. Das border='1'-Attribut bildet den Rahmen, <th>-Elemente erzeugen Kopfzellen und <td>-Elemente erzeugen Datenzellen. CSS kann für fortgeschrittenes Gestaltungwie Zebra Striping, Hover-Effekte oder responsive Layouts hinzugefügt werden. Erfahren Sie mehr über die Erstellung von Tabellen in PDFs.

Beispiel 3: Kopf- und Fußzeilen mit Seitenzahlen

Vor (MigraDoc):

// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        // Add header
        Paragraph headerPara = section.Headers.Primary.AddParagraph();
        headerPara.AddText("Document Header");
        headerPara.Format.Font.Size = 12;
        headerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add footer
        Paragraph footerPara = section.Footers.Primary.AddParagraph();
        footerPara.AddText("Page ");
        footerPara.AddPageField();
        footerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add content
        section.AddParagraph("Main content of the document");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("header-footer.pdf");
    }
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.AddSection();

        // Add header
        Paragraph headerPara = section.Headers.Primary.AddParagraph();
        headerPara.AddText("Document Header");
        headerPara.Format.Font.Size = 12;
        headerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add footer
        Paragraph footerPara = section.Footers.Primary.AddParagraph();
        footerPara.AddText("Page ");
        footerPara.AddPageField();
        footerPara.Format.Alignment = ParagraphAlignment.Center;

        // Add content
        section.AddParagraph("Main content of the document");

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
        pdfRenderer.Document = document;
        pdfRenderer.RenderDocument();
        pdfRenderer.PdfDocument.Save("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");

        pdf.AddTextHeader("Document Header");
        pdf.AddTextFooter("Page {page}");

        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");

        pdf.AddTextHeader("Document Header");
        pdf.AddTextFooter("Page {page}");

        pdf.SaveAs("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

MigraDoc-Kopf- und -Fußzeilen erfordern den Zugriff auf section.Headers.Primary und section.Footers.Primary, das Erstellen von Absätzen darin, das Hinzufügen von Text mit AddText() und die Verwendung spezieller Methoden wie AddPageField()für dynamische Inhalte. Das Alignment erfordert die Einstellung Format.Alignment.

IronPDF bietet einfache AddTextHeader() und AddTextFooter() Methoden für das PdfDocument Objekt. Der {page}-Platzhalter fügt automatisch die aktuelle Seitenzahl ein. Für komplexere Kopfzeilen können Sie HtmlHeaderFooter mit voller HTML/CSS-Unterstützung verwenden. Siehe die Kopf- und Fußzeilen-Dokumentation für erweiterte Optionen.


Kritische Hinweise zur Migration

Seitennummern-Platzhalter-Syntax

Die wichtigste Änderung für Kopf- und Fußzeilen ist die Syntax der Platzhalter:

// MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDFplaceholders:
"Page {page} of {total-pages}"
// MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDFplaceholders:
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Formateigenschaften in CSS

Die Format-Eigenschaften von MigraDocwerden auf CSS abgebildet:

// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;

//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;

//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Einheitsumwandlung

MigraDoc verwendet verschiedene Einheiten;IronPDFverwendet Millimeter-Ränder:

  • "1cm" = 10mm
  • "1in" = 25,4 mm
  • "72pt" = 25,4 mm
// MigraDoc:
table.AddColumn("3cm");

//IronPDF(CSS):
<th style="width: 3cm;">
// MigraDoc:
table.AddColumn("3cm");

//IronPDF(CSS):
<th style="width: 3cm;">
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Rendering-Muster ändern

Das gesamte Rendering-Muster ändert sich:

// MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");

//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");

//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fehlerbehebung

Problem 1: Dokument/Abschnitt nicht gefunden

Problem: die Klassen Dokumentund Abschnittgibt es inIronPDFnicht.

Lösung: Ersetzen durch HTML-Struktur:

// MigraDoc
Document document = new Document();
Section section = document.AddSection();

// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// MigraDoc
Document document = new Document();
Section section = document.AddSection();

// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 2: AddParagraph nicht gefunden

Problem: die Methode AddParagraph() existiert nicht.

Lösung: Verwenden Sie HTML-Elemente:

// MigraDoc
section.AddParagraph("Hello World");

// IronPDF
"<p>Hello World</p>"
// MigraDoc
section.AddParagraph("Hello World");

// IronPDF
"<p>Hello World</p>"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 3: PdfDocumentRenderer nicht gefunden

Problem: PdfDocumentRendererKlasse existiert nicht.

Lösung: Verwenden Sie ChromePdfRenderer:

// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();

// IronPDF
var renderer = new ChromePdfRenderer();
// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();

// IronPDF
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 4: AddPageField funktioniert nicht

Problem: die Methode AddPageField()existiert nicht.

Lösung: Verwenden Sie die IronPDF-Platzhaltersyntax:

// MigraDoc
footerPara.AddPageField();

// IronPDF
pdf.AddTextFooter("Page {page}");
// MigraDoc
footerPara.AddPageField();

// IronPDF
pdf.AddTextFooter("Page {page}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Migrations-Checkliste

Vor der Migration

  • [Identifizieren Sie alle MigraDocverwendenden Anweisungen
  • [Dokumentieren von Tabellenstrukturen (Spalten, Zeilen, Styling)
  • [Beachten Sie den Inhalt von Kopf- und Fußzeilen und die Verwendung von Seitenfeldern
  • [Benutzerdefinierte Stile auflisten, die mit document.Styles definiert wurden
  • [IronPDF-Lizenzschlüssel erhalten

Paketänderungen

  • [Paket PdfSharp-MigraDoc entfernen
  • [Paket PdfSharp-MigraDoc-GDI entfernen
  • [Installieren Sie das NuGet-Paket IronPdf: dotnet add package IronPdf
  • [Namespace-Importe aktualisieren

Code-Änderungen

  • [Lizenzschlüsselkonfiguration beim Starten hinzufügen
  • [Ersetzen Sie Dokument/Abschnitt durch HTML-Struktur
  • [Konvertieren von AddParagraph() in HTML <p>-Elemente
  • [Konvertieren von Tabelle/Zeile/Zelle in HTML <table>-Struktur
  • [Ersetze AddPageField()mit {Seite}Platzhalter
  • [Ersetzen Sie AddNumPagesField()mit {Gesamtseiten}Platzhalter
  • [Konvertieren von Format-Eigenschaften in CSS-Stile
  • [Ersetzen Sie PdfDocumentRendererdurch ChromePdfRenderer

Testing

  • [Vergleich der visuellen Ausgabe zwischen alten und neuen PDFs
  • [Überprüfen Sie, ob die Seitenumbrüche korrekt funktionieren
  • [Überprüfen Sie die Darstellung von Kopf- und Fußzeilen und die Seitenzahlen
  • [Validierung von Tabellenformatierung und Rahmen
  • [Test mit komplexen mehrseitigen Dokumenten

Post-Migration

  • [MigraDoc-bezogene Dokumentation entfernen
  • [Aktualisierung der Schulungsunterlagen für das Team
  • [Dokumentieren Sie neue HTML-Vorlagenpositionen

Abschluss

Durch die Migration von MigraDoczuIronPDFentfällt die steile Lernkurve des proprietären Dokumentenobjektmodells von MigraDoc, während gleichzeitig der Zugang zu den vollständigen CSS3-Styling-Funktionen ermöglicht wird. Der Paradigmenwechsel von der programmatischen Dokumentenkonstruktion zum HTML-first-Rendering reduziert die Komplexität des Codes drastisch - bei komplexen Layouts oft um 80 % oder mehr.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Inhaltsmodell: Dokument/Abschnitt/Paragraph → HTML-Elemente
  2. Styling: Format Eigenschaften → CSS
  3. Tabellen: AddTable()/AddRow()/AddColumn() → HTML <table>
  4. Platzhalter: AddPageField(){page}
  5. Renderer: PdfDocumentRendererChromePdfRenderer

Entdecken Sie die vollständige IronPDF-Dokumentation, Tutorials und API-Referenz, um Ihre MigraDoc-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