Wie man Seitennummern in PDFs mit C# hinzufügt
Das Migrieren von GemBox.Pdf zu IronPDF transformiert Ihren .NET PDF-Workflow von koordinatebasierter, programmatischer Dokumentenerstellung zu moderner HTML/CSS-basierter Darstellung. Dieser Leitfaden bietet einen umfassenden, schrittweisen Migrationspfad, der die 2-Seiten-Limitierung im Freimodus entfernt und die Dokumenterstellung für professionelle .NET-Entwickler vereinfacht.
Warum von GemBox.Pdf zu IronPDF migrieren
Die Herausforderungen von GemBox.Pdf
GemBox.Pdf ist eine fähige .NET PDF-Komponente, aber es gibt Einschränkungen, die bei der Entwicklung in der Praxis abgewogen werden sollten:
-
2-Seiten-Free-Mode-Begrenzung: Die kostenlose Version wirft
FreeLimitReachedExceptionbeim Laden oder Speichern eines PDFs mit mehr als 2 Seiten, daher erfordert alles über einen einseitigen Beleg oder eine zweiseitige Rechnung hinaus eine kostenpflichtige Lizenz. (Source: gemboxsoftware.com/pdf/free-version.) -
Keine HTML-zu-PDF-Konvertierung: GemBox.Pdf kann HTML nicht rendern —
PdfDocument.Loadöffnet nur bestehende PDF-Dateien. Um HTML in PDF zu konvertieren, müssen Sie das separate GemBox.Document-Produkt kaufen (andere SKU, andere Lizenz). -
Koordinatebasierte Layouts: GemBox.Pdf ist eine Low-Level-PDF-Content-Stream-API. Um Text zu platzieren, berechnen Sie X/Y in PDF-User-Space-Einheiten und rufen Sie
page.Content.DrawText(formattedText, new PdfPoint(x, y))auf. Es gibt kein Flusslayout. -
Office-zu-PDF erfordert andere SKUs: Word→PDF benötigt GemBox.Document, Excel→PDF benötigt GemBox.Spreadsheet, jede separat lizenziert; das GemBox.Bundle deckt alle ab, kostet aber mehr.
-
Nur programmatisch: Jede Designänderung erfordert Codeänderungen. Abstände anpassen? Koordinaten neu berechnen. Die Schriftgröße ändern? Justieren Sie die Y-Positionen darunter.
-
Kommerzielle Lizenzpreise: Einzelentwickler-Lizenz kostet 890 $ (Verlängerung 534 $), kleines Team (10 Entwickler) kostet 4.450 $, großes Team (50 Entwickler) kostet 13.350 $. (Quelle: gemboxsoftware.com/pdf/pricing.)
-
Lernkurve für das Design: Entwickler müssen in Koordinaten denken anstatt im Dokumentenfluss, was einfache Aufgaben wie "Absatz hinzufügen" überraschend komplex macht.
Vergleich von GemBox.Pdf und IronPDF
| Aspekt | GemBox.Pdf | IronPDF |
|---|---|---|
| Grenzen der kostenlosen Version | 2-Seiten-Maximum (FreeLimitReachedException) | Nur Wasserzeichen, kein Seitenlimit |
| HTML-zu-PDF | Nicht unterstützt (braucht GemBox.Document) | Vollständige Chromium-Engine |
| Word/Excel → PDF | Separate SKUs (GemBox.Document / GemBox.Spreadsheet) | Rendern über HTML-Pipeline |
| Layout-Ansatz | Koordinatenbasiert, manuell | HTML/CSS-Flow-Layout |
| 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) |
IronPDF nutzt bekannte Webtechnologien zur PDF-Erstellung auf modernem .NET.
Migrationskomplexitätsbewertung
Geschätzter Aufwand nach Merkmalen
| Feature | Komplexität der Migration |
|---|---|
| PDFs laden/speichern | Sehr niedrig |
| PDFs zusammenführen | Sehr niedrig |
| PDFs teilen | Niedrig |
| Textextraktion | Sehr niedrig |
| Text hinzufügen | Medium |
| Tabellen | Niedrig |
| Bilder | Niedrig |
| Wasserzeichen | Niedrig |
| Passwortschutz | Medium |
| Formularfelder | Medium |
Paradigmen-Verschiebung
Die größte Änderung in dieser GemBox.Pdf-Migration ist der Wechsel von koordinatebasiertem Layout zu 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
- **.NET Version:**IronPDF supports .NET Framework 4.6.2+ and .NET Core 2.0+ / .NET 5+
- Lizenzschlüssel: Ihren IronPDF-Lizenzschlüssel erhalten Sie unter IronPDF.
- Datensicherung: Erstellen Sie einen Branch für die Migrationsarbeiten.
- HTML/CSS-Kenntnisse: Grundkenntnisse sind hilfreich, aber nicht erforderlich.
Identifizieren aller GemBox.Pdf-Verwendungen
# Find all GemBox.Pdf references
grep -r "GemBox\.Pdf\|PdfDocument\|PdfPage\|PdfFormattedText\|ComponentInfo\.SetLicense" --include="*.cs" .
# Find package references
grep -r "GemBox\.Pdf" --include="*.csproj" .
NuGet-Paketänderungen
# Remove GemBox.Pdf
dotnet remove package GemBox.Pdf
# Install IronPDF
dotnet add package IronPdf
Schnellstart Migration
Schritt 1: Lizenzkonfiguration aktualisieren
Before (GemBox.Pdf):
// Must call before any GemBox.Pdf operations
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Or for professional:
ComponentInfo.SetLicense("YOUR-PROFESSIONAL-LICENSE");' Must call before any GemBox.Pdf operations
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
' Or for professional:
ComponentInfo.SetLicense("YOUR-PROFESSIONAL-LICENSE")Nach (IronPDF):
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }Imports IronPdf
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
' Or in appsettings.json:
' { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }Schritt 2: Aktualisieren der Namensraum-Importe
// Before (GemBox.Pdf)
using GemBox.Pdf;
using GemBox.Pdf.Content;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;Imports IronPdf
Imports IronPdf.EditingSchritt 3: Grundlegendes Konvertierungsmuster
Before (GemBox.Pdf):
using GemBox.Pdf;
using GemBox.Pdf.Content;
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
using (var document = new PdfDocument())
{
var page = document.Pages.Add();
// PdfFormattedText has no Text property; use Append/AppendLine.
var formattedText = new PdfFormattedText();
formattedText.FontSize = 24;
formattedText.Append("Hello World");
page.Content.DrawText(formattedText, new PdfPoint(100, 700));
document.Save("output.pdf");
}Imports GemBox.Pdf
Imports GemBox.Pdf.Content
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document As New PdfDocument()
Dim page = document.Pages.Add()
' PdfFormattedText has no Text property; use Append/AppendLine.
Dim formattedText As New PdfFormattedText()
formattedText.FontSize = 24
formattedText.Append("Hello World")
page.Content.DrawText(formattedText, New PdfPoint(100, 700))
document.Save("output.pdf")
End UsingNach (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");Imports IronPdf
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1 style='font-size:24px;'>Hello World</h1>")
pdf.SaveAs("output.pdf")Hauptunterschiede:
- Keine Koordinatenberechnungen erforderlich
- HTML/CSS anstelle von programmatischem Layout
- Keine 2-seitige Freimodus-Begrenzung
- Einfacherer, besser lesbarer Code
Komplette API-Referenz
Namensraum-Zuordnung
| GemBox.Pdf | IronPDF |
|---|---|
GemBox.Pdf | IronPdf |
GemBox.Pdf.Content | IronPdf (Inhalt ist HTML) |
GemBox.Pdf.Security | IronPdf (SecuritySettings) |
GemBox.Pdf.Forms | IronPdf.Forms |
Kernklassen-Zuordnung
| GemBox.Pdf | IronPDF | Beschreibung |
|---|---|---|
PdfDocument | PdfDocument | Hauptklasse des PDF-Dokuments |
PdfPage | PdfDocument.Pages[i] | Darstellung der Seite |
PdfContent | 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 |
|---|---|
new PdfDocument() | new PdfDocument() |
PdfDocument.Load(path) | PdfDocument.FromFile(path) |
PdfDocument.Load(stream) | PdfDocument.FromStream(stream) |
document.Save(path) | pdf.SaveAs(path) |
document.Save(stream) | pdf.BinaryData (gibt byte[] zurück) |
Seitenoperationen
| GemBox.Pdf | IronPDF |
|---|---|
document.Pages.Add() | Erstellen über HTML-Rendering |
document.Pages.Count | pdf.PageCount |
document.Pages[index] | pdf.Pages[index] |
document.Pages.AddClone(pages) | PdfDocument.Merge() |
Text- und Inhaltsoperationen
| GemBox.Pdf | IronPDF |
|---|---|
new PdfFormattedText() | HTML-Zeichenkette |
formattedText.Append(text) | In HTML einfügen |
formattedText.AppendLine(text) | In HTML einfügen |
formattedText.FontSize = 12 | CSS font-size: 12pt |
formattedText.Font = ... | CSS font-family: ... |
page.Content.DrawText(text, point) | renderer.RenderHtmlAsPdf(html) |
page.Content.GetText() | pdf.ExtractTextFromPage(i) |
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML in PDF
Vorher (GemBox.Pdf) — nicht unterstützt von GemBox.Pdf; erfordert das separate GemBox.Document SKU:
// NuGet: Install-Package GemBox.Document
// NOTE: GemBox.Pdf does NOT support HTML-to-PDF. PdfDocument.Load only opens
// existing PDF files. To convert HTML to PDF you must use the separate
// GemBox.Document product (different SKU, different license).
using GemBox.Document;
class Program
{
static void Main()
{
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// GemBox.Document loads HTML and saves as PDF.
var document = DocumentModel.Load("input.html");
document.Save("output.pdf");
}
}Imports GemBox.Document
Module Program
Sub Main()
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
' GemBox.Document loads HTML and saves as PDF.
Dim document = DocumentModel.Load("input.html")
document.Save("output.pdf")
End Sub
End ModuleNach (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");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
End Sub
End ClassIronPDFs ChromePdfRenderer verwendet eine moderne Chromium-Engine für HTML/CSS/JavaScript-Rendering, sodass ein einzelnes NuGet-Paket HTML-zu-PDF direkt abdeckt — keine separate SKU. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.
Beispiel 2: PDF-Dateien zusammenführen
Before (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
Imports GemBox.Pdf
Imports System.Linq
Module Program
Sub Main()
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document As New PdfDocument()
Dim source1 = PdfDocument.Load("document1.pdf")
Dim source2 = PdfDocument.Load("document2.pdf")
document.Pages.AddClone(source1.Pages)
document.Pages.AddClone(source2.Pages)
document.Save("merged.pdf")
End Using
End Sub
End ModuleNach (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
Imports IronPdf
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End ClassDie statische Merge-Methode von IronPDF vereinfacht den Vorgang — es ist nicht notwendig, ein leeres Dokument zu erstellen und Seiten einzeln zu klonen. Erfahren Sie mehr über das Zusammenführen und Aufteilen von PDFs.
Beispiel 3: Text zu PDF hinzufügen
Before (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();
// PdfFormattedText has no Text property; use Append/AppendLine.
var formattedText = new PdfFormattedText();
formattedText.FontSize = 24;
formattedText.Append("Hello World");
page.Content.DrawText(formattedText, new PdfPoint(100, 700));
document.Save("output.pdf");
}
}
}Imports GemBox.Pdf
Imports GemBox.Pdf.Content
Module Program
Sub Main()
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document As New PdfDocument()
Dim page = document.Pages.Add()
' PdfFormattedText has no Text property; use Append/AppendLine.
Dim formattedText As New PdfFormattedText()
formattedText.FontSize = 24
formattedText.Append("Hello World")
page.Content.DrawText(formattedText, New PdfPoint(100, 700))
document.Save("output.pdf")
End Using
End Sub
End ModuleNach (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
Imports IronPdf
Imports IronPdf.Editing
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<p>Original Content</p>")
Dim stamper As New TextStamper() With {
.Text = "Hello World",
.FontSize = 24,
.HorizontalOffset = 100,
.VerticalOffset = 700
}
pdf.ApplyStamp(stamper)
pdf.SaveAs("output.pdf")
End Sub
End ModuleZum Hinzufügen von Text zu bestehenden PDFs bietet IronPDF die TextStamper-Klasse, die präzise Positionskontrolle ermöglicht. Für neue Dokumente fügen Sie den Text einfach in Ihre HTML-Vorlage ein. Weitere Optionen finden Sie in der Dokumentation zum Stempelverfahren .
Beispiel 4: Erstellen von Tabellen (Die größte Verbesserung!)
Vorher (GemBox.Pdf) — koordinatebasiertes Layout, auf 2 Seiten im Freimodus beschränkt:
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
var headers = new[] { "Product", "Price", "Qty", "Total" };
for (int i = 0; i < headers.Length; i++)
{
var text = new PdfFormattedText();
text.FontSize = 12;
text.Append(headers[i]);
page.Content.DrawText(text, new PdfPoint(xPositions[i], y));
}
y -= 20;
// Data rows — each row requires manual Y advancement,
// and free mode caps the saved file at 2 pages total.
document.Save("products.pdf");
}Imports GemBox.Pdf
Imports GemBox.Pdf.Content
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document As New PdfDocument()
Dim page = document.Pages.Add()
Dim y As Double = 700
Dim xPositions As Double() = {50, 200, 300, 400}
' Headers
Dim headers = New String() {"Product", "Price", "Qty", "Total"}
For i As Integer = 0 To headers.Length - 1
Dim text As New PdfFormattedText()
text.FontSize = 12
text.Append(headers(i))
page.Content.DrawText(text, New PdfPoint(xPositions(i), y))
Next
y -= 20
' Data rows — each row requires manual Y advancement,
' and free mode caps the saved file at 2 pages total.
document.Save("products.pdf")
End UsingNachher (IronPDF) — keine Seitenbegrenzung, 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");
Das ist die bedeutendste Verbesserung in der GemBox.Pdf-Migration. Tabellen, die ein Freimodus-GemBox.Pdf-Dokument über die 2-Seiten-Begrenzung hinausschieben würden, rendern ohne diese Begrenzung in IronPDF mit voller CSS-Styling-Unterstützung.
Kritische Hinweise zur Migration
Koordinate zu CSS-Positionierung
Wenn Sie pixelgenaue Positionierung benötigen (ähnlich dem Koordinatensystem von GemBox.Pdf), verwenden Sie CSS absolute Positionierung:
<div style="position:absolute; left:50px; top:750px; font-size:24px;">
Text positioned at specific coordinates
</div>
Seitenindizierung
Sowohl GemBox.Pdf als auch IronPDF verwenden 0-indexierte Seiten, was diesen Aspekt der Migration einfach macht:
// GemBox.Pdf
var page = document.Pages[0];
// IronPDF
var page = pdf.Pages[0];' GemBox.Pdf
Dim page = document.Pages(0)
' IronPDF
Dim page = pdf.Pages(0)Sicherheitseinstellungen
// GemBox.Pdf
var encryption = document.SaveOptions.SetPasswordEncryption();
encryption.DocumentOpenPassword = "userPassword";
encryption.PermissionsPassword = "ownerPassword";
// IronPDF
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";' GemBox.Pdf
Dim encryption = document.SaveOptions.SetPasswordEncryption()
encryption.DocumentOpenPassword = "userPassword"
encryption.PermissionsPassword = "ownerPassword"
' IronPDF
pdf.SecuritySettings.UserPassword = "userPassword"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"Fehlerbehebung
Ausgabe 1: PdfFormattedText nicht gefunden
Problem: PdfFormattedText existiert nicht in IronPDF.
Lösung: HTML mit CSS-Styling verwenden:
// GemBox.Pdf
var text = new PdfFormattedText();
text.FontSize = 24;
text.Append("Hello");
// IronPDF
var html = "<p style='font-size:24px;'>Hello</p>";
var pdf = renderer.RenderHtmlAsPdf(html);Imports GemBox.Pdf
Imports IronPDF
Dim text As New PdfFormattedText()
text.FontSize = 24
text.Append("Hello")
Dim html As String = "<p style='font-size:24px;'>Hello</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)Ausgabe 2: DrawText-Methode nicht gefunden
Problem: page.Content.DrawText() nicht verfügbar.
Lösung: Inhalte über HTML-Rendering erstellen oder Stamper verwenden:
// 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);Imports System
' For new documents - render HTML
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Content</h1>")
' For existing documents - use stampers
Dim stamper As New TextStamper() With {.Text = "Added Text"}
pdf.ApplyStamp(stamper)Thema 3: Unterschiede beim Laden von Dokumenten
Problem: PdfDocument.Load() not found.
Lösung: Verwenden Sie PdfDocument.FromFile() oder FromStream():
// GemBox.Pdf
var doc = PdfDocument.Load("input.pdf");
// IronPDF
var pdf = PdfDocument.FromFile("input.pdf");Imports GemBox.Pdf
Imports IronPdf
Dim doc = PdfDocument.Load("input.pdf")
Dim pdf = PdfDocument.FromFile("input.pdf")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");netMigrations-Checkliste
Vor der Migration
- Inventarisieren Sie alle GemBox.Pdf-Verwendung in der Codebasis
- Identifizieren Sie koordinatenbasierte Layouts, die eine HTML-Konvertierung benötigen.
- Bewerten Sie, wo die 2-seitige Freimodus-Begrenzung Ihren Code beeinflusst -IronPDF-Lizenzschlüssel erhalten
- Migrationszweig in der Versionskontrolle erstellen
Code-Migration
- Entfernen Sie GemBox.Pdf NuGet-Paket:
dotnet remove package GemBox.Pdf - Installieren Sie IronPDF NuGet-Paket:
dotnet add package IronPdf - Namespace-Importe aktualisieren
- Ersetzen Sie
ComponentInfo.SetLicense()durchIronPdf.License.LicenseKey - Konvertieren Sie
PdfDocument.Load()zuPdfDocument.FromFile() - Konvertieren Sie
document.Save()zupdf.SaveAs() - Ersetzen Sie koordinatenbasierten Text durch HTML-Inhalt
- Konvertieren Sie
PdfFormattedTextzu HTML mit CSS-Styling - Aktualisieren Sie Zusammenführungsoperationen, um
PdfDocument.Merge()zu verwenden
Testen
- Überprüfen Sie, ob alle Dokumente korrekt generiert wurden.
- Sicherstellen, dass das Erscheinungsbild des Dokuments den Erwartungen entspricht
- Testen Sie die Ausgabe mit mehreren Seiten (zuvor im Freimodus auf 2 Seiten beschränkt)
- Überprüfen Sie, ob die Textextraktion korrekt funktioniert.
- Testen von Zusammenführungs- und Aufteilungsoperationen
- Sicherheits-/Verschlüsselungsfunktionalität überprüfen
Nach der Migration
- Entfernen Sie GemBox.Pdf Lizenzschlüssel
- Dokumentation aktualisieren
- Schulung des Teams zum HTML/CSS-Ansatz für PDFs
- Genießen Sie unbegrenzte Seitenzahlen ohne Freimodusbegrenzung!

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 Handbücher.