Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von GemBox PDF zu IronPDF in C#

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

Durch die Migration von GemBox PDFzuIronPDFwird Ihr .NET-PDF-Workflow von der koordinatenbasierten, programmatischen Dokumentenerstellung auf modernes HTML/CSS-basiertes Rendering umgestellt. Dieses Handbuch bietet einen umfassenden, schrittweisen Migrationspfad, der Absatzbeschränkungen aufhebt und die Dokumentenerstellung für professionelle .NET-Entwickler vereinfacht.

Warum von GemBox PDFzuIronPDFmigrieren

Die GemBox PDF-Herausforderungen

GemBox PDF ist eine leistungsfähige .NET-PDF-Komponente, die jedoch erhebliche Einschränkungen aufweist, die sich auf die praktische Entwicklung auswirken:

  1. Begrenzung auf 20 Absätze in der kostenlosen Version: In der kostenlosen Version sind Sie auf 20 Absätze beschränkt, und Tabellenzellen zählen zu dieser Grenze. Eine einfache 10-zeilige, 5-spaltige Tabelle benötigt 50 "Absätze", was die kostenlose Version selbst für einfache Geschäftsdokumente unbrauchbar macht.

  2. Keine HTML-zu-PDF-Konvertierung: GemBox PDFerfordert eine programmatische Dokumentenerstellung. Sie müssen Koordinaten berechnen und jedes Element manuell positionieren - es gibt keine einfache "render this HTML"-Funktion.

  3. Koordinatenbasiertes Layout: Im Gegensatz zu HTML/CSS, wo das Layout natürlich fließt, müssen Sie in GemBox PDFgenaue X/Y-Positionen für jedes Textelement, Bild und jede Form berechnen.

  4. Beschränkter Funktionsumfang: Im Vergleich zu umfassenden PDF-Bibliotheken konzentriert sich GemBox PDFauf grundlegende Operationen - Lesen, Schreiben, Zusammenführen, Aufteilen - ohne erweiterte Funktionen wie HTML-Rendering oder moderne CSS-Unterstützung.

  5. Nur programmatisch: Jede Designänderung erfordert Codeänderungen. Möchten Sie die Abstände optimieren? Koordinaten neu berechnen. Sie möchten eine andere Schriftgröße? Passen Sie alle Y-Positionen darunter an.

  6. Zählung von Tabellenzellen: Die Absatzbegrenzung zählt Tabellenzellen, nicht nur sichtbare Absätze. Das macht die kostenlose Version für Dokumente mit Tabellen praktisch wertlos.

  7. Lernkurve für Design: Entwickler müssen eher in Koordinaten als in Dokumentenflüssen denken, was einfache Aufgaben wie "einen Absatz hinzufügen" überraschend komplex macht.

Vergleich zwischen GemBox PDFund IronPDF

Aspekt GemBox PDF IronPDF
Grenzen der kostenlosen Version 20 Absätze (einschließlich Tabellenzellen) Nur Wasserzeichen, keine inhaltlichen Einschränkungen
HTML-zu-PDF Nicht unterstützt Vollständige Chromium-Engine
Layout-Ansatz Koordinatenbasiert, manuell HTML/CSS-Flow-Layout
Tabellen Zählt zum Absatzlimit Unbegrenzt, Verwendung von HTML-Tabellen
Modernes CSS Nicht zutreffend Flexbox, Grid, CSS3-Animationen
JavaScript-Unterstützung Nicht zutreffend Vollständige Ausführung von JavaScript
Änderungen am Design Koordinaten neu berechnen HTML/CSS bearbeiten
Lernkurve PDF-Koordinatensystem HTML/CSS (mit dem Web vertraut)

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine zukunftssichere Grundlage, die vertraute Webtechnologien für die PDF-Erzeugung nutzt.


Migrationskomplexitätsbewertung

Geschätzter Aufwand nach Merkmalen

Feature Komplexität der Migration Notizen
PDFs laden/speichern Sehr niedrig Direkte Methodenzuordnung
PDFs zusammenführen Sehr niedrig Direkte Methodenzuordnung
PDFs teilen Niedrig Handhabung des Seitenindex
Textextraktion Sehr niedrig Direkte Methodenzuordnung
Text hinzufügen Medium Koordinieren → HTML
Tabellen Niedrig Handbuch → HTML-Tabellen
Bilder Niedrig Koordinieren → HTML
Wasserzeichen Niedrig Verschiedene API
Passwortschutz Medium Unterschiedliche Struktur
Formularfelder Medium API-Unterschiede

Paradigmen-Verschiebung

Die größte Änderung bei dieser GemBox-PDF-Migration ist der Wechsel vom koordinatenbasierten Layout zum HTML/CSS-Layout:

GemBox PDF:  "Text an Position (100, 700) zeichnen"
IronPDF:     "Dieses HTML mit CSS-Styling rendern"

Dieser Paradigmenwechsel ist für Entwickler, die mit Webtechnologien vertraut sind, in der Regel einfacher, erfordert aber eine andere Sichtweise auf PDFs.


Bevor Sie beginnen

Voraussetzungen

  1. .NET Version:IronPDFunterstützt .NET Framework 4.6.2+ und .NET Core 2.0+ / .NET 5/6/7/8/9+
  2. Lizenzschlüssel: Beziehen Sie Ihren IronPDF-Lizenzschlüssel von ironpdf.com
  3. Backup: Erstellen Sie eine Verzweigung für Migrationsarbeiten
  4. HTML/CSS-Kenntnisse: Grundlegende Kenntnisse sind hilfreich, aber nicht erforderlich

Alle GemBox PDF-Verwendung identifizieren

# Find all GemBox PDFreferences
grep -r "GemBox\.Pdf\|PdfDocument\|PdfPage\|PdfFormattedText\|ComponentInfo\.SetLicense" --include="*.cs" .

# Find package references
grep -r "GemBox\.Pdf" --include="*.csproj" .
# Find all GemBox PDFreferences
grep -r "GemBox\.Pdf\|PdfDocument\|PdfPage\|PdfFormattedText\|ComponentInfo\.SetLicense" --include="*.cs" .

# Find package references
grep -r "GemBox\.Pdf" --include="*.csproj" .
SHELL

NuGet-Paketänderungen

# Remove GemBox PDF
dotnet remove package GemBox.Pdf

# Install IronPDF
dotnet add package IronPdf
# Remove GemBox PDF
dotnet remove package GemBox.Pdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Schnellstart Migration

Schritt 1: Lizenzkonfiguration aktualisieren

Vor (GemBox PDF):

// Must call before any GemBox PDFoperations
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Or for professional:
ComponentInfo.SetLicense("YOUR-PROFESSIONAL-LICENSE");
// Must call before any GemBox PDFoperations
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Or for professional:
ComponentInfo.SetLicense("YOUR-PROFESSIONAL-LICENSE");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Schritt 2: Aktualisieren der Namensraum-Importe

// Before (GemBox PDF)
using GemBox.Pdf;
using GemBox.Pdf.Content;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
// Before (GemBox PDF)
using GemBox.Pdf;
using GemBox.Pdf.Content;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Schritt 3: Grundlegendes Konvertierungsmuster

Vor (GemBox PDF):

using GemBox.Pdf;
using GemBox.Pdf.Content;

ComponentInfo.SetLicense("FREE-LIMITED-KEY");

using (var document = new PdfDocument())
{
    var page = document.Pages.Add();
    var formattedText = new PdfFormattedText()
    {
        Text = "Hello World",
        FontSize = 24
    };

    page.Content.DrawText(formattedText, new PdfPoint(100, 700));
    document.Save("output.pdf");
}
using GemBox.Pdf;
using GemBox.Pdf.Content;

ComponentInfo.SetLicense("FREE-LIMITED-KEY");

using (var document = new PdfDocument())
{
    var page = document.Pages.Add();
    var formattedText = new PdfFormattedText()
    {
        Text = "Hello World",
        FontSize = 24
    };

    page.Content.DrawText(formattedText, new PdfPoint(100, 700));
    document.Save("output.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1 style='font-size:24px;'>Hello World</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1 style='font-size:24px;'>Hello World</h1>");
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Hauptunterschiede:

  • Keine Koordinatenberechnungen erforderlich
  • HTML/CSS anstelle von programmatischem Layout
  • Keine Absatzbegrenzung
  • Einfacherer, besser lesbarer Code

Komplette API-Referenz

Namensraum-Zuordnung

GemBox PDF IronPDF
GemBox.Pdf IronPdf
GemBox.Pdf.Inhalt IronPdf(Inhalt ist HTML)
GemBox.Pdf.Sicherheit IronPdf(SecuritySettings)
GemBox.Pdf.Forms IronPdf.Forms

Kernklassen-Zuordnung

GemBox PDF IronPDF Beschreibung
PdfDocument PdfDocument Hauptklasse des PDF-Dokuments
PdfSeite PdfDocument.Pages[i] Darstellung der Seite
Pdf-Inhalt N/A (HTML verwenden) Inhalt der Seite
PdfFormattedText N/A (HTML verwenden) Formatierter Text
PdfPoint N/A (CSS-Positionierung verwenden) Positionierung koordinieren
ComponentInfo.SetLicense() IronPdf.License.LicenseKey Lizenzverwaltung

Dokumentenoperationen

GemBox PDF IronPDF Notizen
new PdfDocument() new PdfDocument() Neues Dokument erstellen
PdfDocument.Load(Pfad) PdfDocument.FromFile(path) Aus Datei laden
PdfDocument.Load(stream) PdfDocument.FromStream(stream) Vom Stream laden
document.Save(Pfad) pdf.SaveAs(Pfad) In Datei speichern
document.Save(stream) pdf.Stream oder pdf.BinaryData Als Stream/Bytes erhalten

Seitenoperationen

GemBox PDF IronPDF Notizen
document.Pages.Add() Erstellen über HTML-Rendering Neue Seite hinzufügen
document.Pages.Count pdf.PageCount Anzahl der Seiten
document.Pages[index] pdf.Seiten[index] Zugangsseite (beide 0-indiziert)
document.Pages.AddClone(pages) PdfDocument.Merge() Klonen/Zusammenführen von Seiten

Text- und Inhaltsoperationen

GemBox PDF IronPDF Notizen
new PdfFormattedText() HTML-Zeichenkette Inhalt des Textes
formattedText.FontSize = 12 CSS Schriftgröße: 12pt Schriftgröße
formattedText.Font = ... CSS font-family: ... Schriftfamilie
Seite.Inhalt.DrawText(Text, Punkt) renderer.RenderHtmlAsPdf(html) Text rendern
Seite.Inhalt.GetText() pdf.ExtractTextFromPage(i) Text extrahieren

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (GemBox PDF):

// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using GemBox.Pdf.Content;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        var document = PdfDocument.Load("input.html");
        document.Save("output.pdf");
    }
}
// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using GemBox.Pdf.Content;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        var document = PdfDocument.Load("input.html");
        document.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

Der ChromePdfRenderer vonIronPDFverwendet eine moderne Chromium-Engine für eine genaue HTML/CSS/JavaScript-Darstellung. Im Gegensatz zur begrenzten HTML-Unterstützung von GemBox PDFkannIronPDFjeden HTML-Inhalt mit vollständiger CSS3- und JavaScript-Unterstützung darstellen. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: PDF-Dateien zusammenführen

Vor (GemBox PDF):

// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using System.Linq;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        using (var document = new PdfDocument())
        {
            var source1 = PdfDocument.Load("document1.pdf");
            var source2 = PdfDocument.Load("document2.pdf");

            document.Pages.AddClone(source1.Pages);
            document.Pages.AddClone(source2.Pages);

            document.Save("merged.pdf");
        }
    }
}
// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using System.Linq;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        using (var document = new PdfDocument())
        {
            var source1 = PdfDocument.Load("document1.pdf");
            var source2 = PdfDocument.Load("document2.pdf");

            document.Pages.AddClone(source1.Pages);
            document.Pages.AddClone(source2.Pages);

            document.Save("merged.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die statische Merge-Methode vonIronPDFvereinfacht den Vorgang - es ist nicht notwendig, ein leeres Dokument zu erstellen und die Seiten einzeln zu klonen. Erfahren Sie mehr über das Zusammenführen und Aufteilen von PDFs.

Beispiel 3: Text zu PDF hinzufügen

Vor (GemBox PDF):

// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using GemBox.Pdf.Content;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        using (var document = new PdfDocument())
        {
            var page = document.Pages.Add();
            var formattedText = new PdfFormattedText()
            {
                Text = "Hello World",
                FontSize = 24
            };

            page.Content.DrawText(formattedText, new PdfPoint(100, 700));
            document.Save("output.pdf");
        }
    }
}
// NuGet: Install-Package GemBox.Pdf
using GemBox.Pdf;
using GemBox.Pdf.Content;

class Program
{
    static void Main()
    {
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        using (var document = new PdfDocument())
        {
            var page = document.Pages.Add();
            var formattedText = new PdfFormattedText()
            {
                Text = "Hello World",
                FontSize = 24
            };

            page.Content.DrawText(formattedText, new PdfPoint(100, 700));
            document.Save("output.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<p>Original Content</p>");

        var stamper = new TextStamper()
        {
            Text = "Hello World",
            FontSize = 24,
            HorizontalOffset = 100,
            VerticalOffset = 700
        };

        pdf.ApplyStamp(stamper);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<p>Original Content</p>");

        var stamper = new TextStamper()
        {
            Text = "Hello World",
            FontSize = 24,
            HorizontalOffset = 100,
            VerticalOffset = 700
        };

        pdf.ApplyStamp(stamper);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für das Hinzufügen von Text zu bestehenden PDFs bietetIronPDFdie Klasse TextStamper, die eine präzise Steuerung der Positionierung ermöglicht. Für neue Dokumente fügen Sie den Text einfach in Ihre HTML-Vorlage ein. Weitere Optionen finden Sie in der Stempeldokumentation.

Beispiel 4: Erstellen von Tabellen (Die größte Verbesserung!)

Vor (GemBox PDF) - Jede Zelle zählt für die Begrenzung auf 20 Absätze:

using GemBox.Pdf;
using GemBox.Pdf.Content;

ComponentInfo.SetLicense("FREE-LIMITED-KEY");

using (var document = new PdfDocument())
{
    var page = document.Pages.Add();
    double y = 700;
    double[] xPositions = { 50, 200, 300, 400 };

    // Headers (4 paragraphs)
    var headers = new[] { "Product", "Price", "Qty", "Total" };
    for (int i = 0; i < headers.Length; i++)
    {
        var text = new PdfFormattedText { Text = headers[i], FontSize = 12 };
        page.Content.DrawText(text, new PdfPoint(xPositions[i], y));
    }
    y -= 20;

    // Data rows (4 paragraphs per row!)
    // Can only add a few rows before hitting 20-paragraph limit!

    document.Save("products.pdf");
}
using GemBox.Pdf;
using GemBox.Pdf.Content;

ComponentInfo.SetLicense("FREE-LIMITED-KEY");

using (var document = new PdfDocument())
{
    var page = document.Pages.Add();
    double y = 700;
    double[] xPositions = { 50, 200, 300, 400 };

    // Headers (4 paragraphs)
    var headers = new[] { "Product", "Price", "Qty", "Total" };
    for (int i = 0; i < headers.Length; i++)
    {
        var text = new PdfFormattedText { Text = headers[i], FontSize = 12 };
        page.Content.DrawText(text, new PdfPoint(xPositions[i], y));
    }
    y -= 20;

    // Data rows (4 paragraphs per row!)
    // Can only add a few rows before hitting 20-paragraph limit!

    document.Save("products.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF) - Keine Einschränkungen, richtige HTML-Tabellen:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var html = @"
    <html>
    <head>
        <style>
            table { border-collapse: collapse; width: 100%; }
            th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
            th { background-color: #4CAF50; color: white; }
            tr:nth-child(even) { background-color: #f2f2f2; }
        </style>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>Product</th>
                    <th>Price</th>
                    <th>Qty</th>
                    <th>Total</th>
                </tr>
            </thead>
            <tbody>
                <tr><td>Widget A</td><td>$19.99</td><td>5</td><td>$99.95</td></tr>
                <tr><td>Widget B</td><td>$29.99</td><td>3</td><td>$89.97</td></tr>
                <!-- Add hundreds or thousands of rows - no limit! -->
            </tbody>
        </table>
    </body>
    </html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("products.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

var html = @"
    <html>
    <head>
        <style>
            table { border-collapse: collapse; width: 100%; }
            th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
            th { background-color: #4CAF50; color: white; }
            tr:nth-child(even) { background-color: #f2f2f2; }
        </style>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>Product</th>
                    <th>Price</th>
                    <th>Qty</th>
                    <th>Total</th>
                </tr>
            </thead>
            <tbody>
                <tr><td>Widget A</td><td>$19.99</td><td>5</td><td>$99.95</td></tr>
                <tr><td>Widget B</td><td>$29.99</td><td>3</td><td>$89.97</td></tr>
                <!-- Add hundreds or thousands of rows - no limit! -->
            </tbody>
        </table>
    </body>
    </html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("products.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dies ist die wichtigste Verbesserung bei der GemBox-PDF-Migration. Tabellen, die in der kostenlosen Version von GemBox PDFnicht möglich waren, funktionieren inIronPDFmit voller CSS-Styling-Unterstützung perfekt.


Kritische Hinweise zur Migration

Koordinate zu CSS-Positionierung

Wenn Sie eine pixelgenaue Positionierung benötigen (ähnlich dem Koordinatensystem von GemBox PDF), verwenden Sie die absolute CSS-Positionierung:

<div style="position:absolute; left:50px; top:750px; font-size:24px;">
    Text positioned at specific coordinates
</div>
<div style="position:absolute; left:50px; top:750px; font-size:24px;">
    Text positioned at specific coordinates
</div>
HTML

Seitenindizierung

Sowohl GemBox PDFals auchIronPDFverwenden 0-indizierte Seiten, so dass dieser Aspekt der Migration einfach zu bewerkstelligen ist:

// GemBox PDF
var page = document.Pages[0];

// IronPDF
var page = pdf.Pages[0];
// GemBox PDF
var page = document.Pages[0];

// IronPDF
var page = pdf.Pages[0];
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sicherheitseinstellungen

// GemBox PDF
document.SaveOptions.SetPasswordEncryption(userPassword, ownerPassword);

// IronPDF
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
// GemBox PDF
document.SaveOptions.SetPasswordEncryption(userPassword, ownerPassword);

// IronPDF
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fehlerbehebung

Ausgabe 1: PdfFormattedText nicht gefunden

Problem: PdfFormattedTextgibt es inIronPDFnicht.

Lösung: Verwenden Sie HTML mit CSS-Styling:

// GemBox PDF
var text = new PdfFormattedText { Text = "Hello", FontSize = 24 };

// IronPDF
var html = "<p style='font-size:24px;'>Hello</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// GemBox PDF
var text = new PdfFormattedText { Text = "Hello", FontSize = 24 };

// IronPDF
var html = "<p style='font-size:24px;'>Hello</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 2: DrawText-Methode nicht gefunden

Problem: page.Content.DrawText() nicht verfügbar.

Lösung: Erstellen Sie Inhalte per HTML-Rendering oder verwenden Sie Stampers:

// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Content</h1>");

// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Content</h1>");

// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Thema 3: Unterschiede beim Laden von Dokumenten

Problem: PdfDocument.Load() nicht gefunden.

Lösung: Verwenden Sie PdfDocument.FromFile() oder FromStream():

// GemBox PDF
var doc = PdfDocument.Load("input.pdf");

// IronPDF
var pdf = PdfDocument.FromFile("input.pdf");
// GemBox PDF
var doc = PdfDocument.Load("input.pdf");

// IronPDF
var pdf = PdfDocument.FromFile("input.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 4: Unterschiede zwischen den Speichermethoden

Problem: document.Save() Methodensignatur unterscheidet sich.

Lösung: Verwenden Sie SaveAs():

// GemBox PDF
document.Save("output.pdf");

// IronPDF
pdf.SaveAs("output.pdf");
// GemBox PDF
document.Save("output.pdf");

// IronPDF
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Migrations-Checkliste

Vor der Migration

  • [Inventarisierung der gesamten GemBox-PDF-Nutzung in der Codebase
  • [Identifizieren Sie koordinatenbasierte Layouts, die eine HTML-Konvertierung benötigen
  • [Bewerten Sie die aktuellen Absatzbeschränkungen, die Ihren Code betreffen
  • [IronPDF-Lizenzschlüssel erhalten
  • [Migrationszweig in der Versionskontrolle erstellen

Code-Migration

  • [GemBox PDF NuGet-Paket entfernen: dotnet remove package GemBox.Pdf
  • [IronPdf NuGet-Paket installieren: dotnet add package IronPdf
  • [Namespace-Importe aktualisieren
  • [Ersetzen Sie ComponentInfo.SetLicense()durch IronPdf.License.LicenseKey
  • [Konvertieren Sie PdfDocument.Load() in PdfDocument.FromFile()
  • [Konvertiere document.Save() in pdf.SaveAs()
  • [Ersetzen von koordinatenbasiertem Text durch HTML-Inhalt
  • [Konvertieren von PdfFormattedTextin HTML mit CSS-Styling
  • [Aktualisieren Sie Zusammenführungsoperationen, um PdfDocument.Merge()zu verwenden

Testing

  • [Überprüfen Sie, ob alle Dokumente korrekt generiert werden
  • [Prüfen, ob das Erscheinungsbild des Dokuments den Erwartungen entspricht
  • [Erstellung von Testtabellen (bisher durch die 20-Paragraphen-Regel begrenzt)
  • [Überprüfen Sie, ob die Textextraktion korrekt funktioniert
  • [Testen Sie Merge- und Split-Operationen
  • [Validierung der Sicherheits-/Verschlüsselungsfunktionalität

Post-Migration

  • [GemBox PDF-Lizenzschlüssel entfernen
  • [Dokumentation aktualisieren
  • [Schulung des Teams zum HTML/CSS-Ansatz für PDFs
  • [Genießen Sie unbegrenzten Inhalt ohne Absatzbegrenzung!

Abschluss

Die Migration von GemBox PDFzuIronPDFbeseitigt das frustrierende 20-Absatz-Limit, das Tabellenzellen zählt, ersetzt die koordinatenbasierte Positionierung durch ein intuitives HTML/CSS-Layout und bietet eine moderne Chromium-basierte Rendering-Engine für eine präzise Dokumentenerstellung.

Der Paradigmenwechsel von der programmatischen Dokumentenkonstruktion zum HTML-basierten Rendering nutzt die Fähigkeiten, über die die meisten Entwickler bereits verfügen, verkürzt die Entwicklungszeit und macht Designänderungen so einfach wie die Bearbeitung von HTML und CSS. Für Teams, die dokumentenlastige Anwendungen erstellen, beseitigt diese GemBox-PDF-Migration künstliche Inhaltsbeschränkungen und eröffnet Möglichkeiten für eine komplexe, professionelle PDF-Erstellung.

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