Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von ABCpdf for .NET zu IronPDF migriert

Der Wechsel von ABCpdf für .NET zuIronPDFist ein strategisches Upgrade für Entwicklungsteams, die eine vereinfachte Lizenzierung, eine moderne Dokumentation und native plattformübergreifende Unterstützung anstreben. Dieser ausführliche Leitfaden bietet einen schrittweisen Migrationspfad mit API-Zuordnungen und Code-Konvertierungsbeispielen aus realen Szenarien.

Egal, ob Sie mit .NET Framework 4.6.2 arbeiten oder .NET 9 und höher bis 2026 anvisieren, dieser ABCpdf-Migrationsleitfaden gewährleistet einen einfachen Übergang zur Chrome-basierten Rendering-Engine von IronPDF.

Warum eine ABCpdf-Migration in Betracht ziehen?

ABCpdf von WebSupergoo ist seit Jahren eine leistungsfähige .NET PDF-Bibliothek. Mehrere Faktoren machenIronPDFjedoch zu einer attraktiven Alternative für moderne Entwicklungsteams, die Projekte bis in die Jahre 2025 und 2026 planen.

Lizenzierungskomplexität

ABCpdf verwendet ein gestaffeltes Lizenzmodell, dessen Handhabung mitunter verwirrend sein kann. Die Preise beginnen bei 349 US-Dollar, steigen jedoch je nach Funktionen, Serverbereitstellung und Anwendungsfall. Viele Entwickler berichten, dass dieses Lizenzierungslabyrinth eine erhebliche administrative Belastung bei der Budgetierung von Projekten darstellt.

Windows-First-Architektur

ABCpdf hat zwar plattformübergreifende Unterstützung hinzugefügt, aber sein historisches, auf Windows ausgerichtetes Design taucht gelegentlich in Arbeitsabläufen auf. Entwickler, die mit Linux-Containern, Docker-Umgebungen oder macOS-Entwicklungsumgebungen arbeiten, könnten auf Reibungen stoßen, mit denen sie bei der Projektplanung nicht gerechnet haben.

Dokumentationsstil

Die Dokumentation von ABCpdf ist zwar umfassend, folgt aber einem älteren Stil, der im Vergleich zu modernen API-Dokumentationsstandards veraltet wirken kann. Neue Benutzer haben oft Schwierigkeiten, genau die Beispiele zu finden, die sie benötigen, insbesondere wenn sie mit neueren .NET-Versionen arbeiten.

Motor-Konfigurationsaufwand

ABCpdf erfordert eine explizite Auswahl der Engine (Gecko, Trident oder Chrome) und eine manuelle Ressourcenverwaltung mit Clear()-Aufrufen. Dies fügt jedem PDF-Vorgang Kesselstein-Code hinzu, den moderne Entwickler lieber vermeiden würden.

IronPDFvs. ABCpdf: Funktionsvergleich

In der folgenden Vergleichstabelle sind die wichtigsten Unterschiede zwischen den beiden .NET-PDF-Bibliotheken aufgeführt:

Feature ABCpdf für .NET IronPDF
Rendering Engine Gecko/Trident/Chrome (konfigurierbar) Vollständiges Chromium (CSS3, JavaScript)
Plattformübergreifend Später hinzugefügt, zunächst für Windows Native Windows, Linux, macOS, Docker
Lizenzierungsmodell Komplexe Preisstaffelung ab $349+ Einfache, transparente Preisgestaltung
.NET-Unterstützung schwerpunkt .NET Framework Framework 4.6.2 zu .NET 9+
Ressourcenmanagement Handbuch doc.Clear()erforderlich IDisposable mit using-Anweisungen
Lizenz-Einrichtung Verwendet häufig Registry Einfacher codebasierter Lizenzschlüssel
Dokumentation Veralteter Stil Moderne Dokumentationen mit umfangreichen Beispielen

Bevor Sie mit Ihrer Migration beginnen

Voraussetzungen

Stellen Sie sicher, dass Ihre Entwicklungsumgebung diese Anforderungen erfüllt:

  • .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5-9
  • Visual Studio 2019+ oder JetBrains Rider
  • NuGet Package Manager Zugang
  • IronPDF Lizenzschlüssel (kostenlose Testversion verfügbar)

Alle ABCpdf-Referenzen finden

Führen Sie diese Befehle in Ihrem Lösungsverzeichnis aus, um alle Dateien zu finden, die ABCpdf für .NET verwenden:

grep -r "using WebSupergoo" --include="*.cs" .
grep -r "ABCpdf" --include="*.csproj" .
grep -r "using WebSupergoo" --include="*.cs" .
grep -r "ABCpdf" --include="*.csproj" .
SHELL

Bei dieser Prüfung wird jede Datei identifiziert, die geändert werden muss, um eine vollständige Migration zu gewährleisten.

Bahnbrechende Änderungen, die zu erwarten sind

Das Verständnis der architektonischen Unterschiede zwischen ABCpdf für .NETundIronPDFverhindert Überraschungen bei der Migration:

Kategorie ABCpdf-Verhalten IronPDF-Verhalten Migration Aktion
Objektmodell Doc Klasse ist zentral ChromePdfRenderer + PdfDocument Rendering vom Dokument trennen
Bereinigung von Ressourcen Handbuch doc.Clear() IDisposable-Muster Verwenden Sie benutzen-Anweisungen
Auswahl des Motors doc.HtmlOptions.Engine = EngineType.Chrome Eingebauter Chrome Engine-Konfiguration entfernen
Indizierung der Seite 1-basiert (doc.Page = 1) 0-basiert (pdf.Pages[0]) Index-Referenzen anpassen
Koordinaten Punktbasiert mit doc.Rect CSS-basierte Ränder CSS oder RenderingOptions verwenden

Schnellstart: 5-Minuten-Migration

Schritt 1: NuGet-Pakete aktualisieren

# Remove ABCpdf
dotnet remove package ABCpdf

# Install IronPDF
dotnet add package IronPdf
# Remove ABCpdf
dotnet remove package ABCpdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Schritt 2: Festlegen des Lizenzschlüssels

Fügen Sie dies beim Starten der Anwendung vor allen IronPDF-Vorgängen hinzu:

// 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";
$vbLabelText   $csharpLabel

Schritt 3: Globales Suchen und Ersetzen

Aktualisieren Sie alle Namespace-Referenzen in Ihrer Codebasis:

Finden Sie Ersetzen durch
WebSupergoo.ABCpdf13 verwenden; IronPdf verwenden;
Verwendung von WebSupergoo.ABCpdf13.Objects; IronPdf verwenden;
WebSupergoo.ABCpdf12 verwenden; IronPdf verwenden;
WebSupergoo.ABCpdf11 verwenden; IronPdf verwenden;

Komplette API-Referenz

Methoden der Dokumentenerstellung

In der folgenden Tabelle werden die ABCpdf for .NET-Methoden auf ihre IronPDF-Entsprechungen abgebildet:

ABCpdf-Methode IronPDF-Methode Notizen
new Doc() new ChromePdfRenderer() Renderer erstellt PDFs
doc.AddImageUrl(url) renderer.RenderUrlAsPdf(url) URL zu PDF Konvertierung
doc.AddImageHtml(html) renderer.RenderHtmlAsPdf(html) HTML-String in PDF
doc.AddImageFile(path) renderer.RenderHtmlFileAsPdf(path) HTML-Datei in PDF
doc.Read(Pfad) PdfDocument.FromFile(path) Vorhandene PDF-Datei laden
doc.Save(Pfad) pdf.SaveAs(Pfad) In Datei speichern
doc.GetData() pdf.BinaryData Als Byte-Array erhalten
doc.Clear() Verwenden Sie die Verwendung-Anweisung Automatische Entsorgung

Seitenbearbeitungsmethoden

ABCpdf-Methode IronPDF-Methode Notizen
doc.PageCount pdf.PageCount Gleiche Verwendung
doc.Page = n pdf.Seiten[n-1] ABCpdf ist 1-indiziert,IronPDFist 0-indiziert
doc.Delete(pageId) pdf.RemovePages(index) Seiten entfernen
doc.Append(otherDoc) PdfDocument.Merge(pdf1, pdf2) Statische Zusammenführungsmethode
doc.Rect.Inset(x, y) RenderingOptions.MarginTop/Bottom/Left/Right Margen

Sicherheit und Verschlüsselungsmethoden

ABCpdf-Methode IronPDF-Methode Notizen
doc.Encryption.Password pdf.SecuritySettings.OwnerPassword Passwort des Eigentümers
doc.Encryption.CanPrint pdf.SecuritySettings.AllowUserPrinting Druckgenehmigung
doc.Encryption.CanCopy pdf.SecuritySettings.AllowUserCopyPasteContent Kopiererlaubnis
doc.SetInfo("Titel", Wert) pdf.MetaData.Title Metadaten des Dokuments

Beispiele für die Code-Migration

Beispiel 1: HTML zu PDF von URL

Dieses Beispiel zeigt die Konvertierung einer Webseite in PDF, eine der häufigsten Aufgaben bei der PDF-Erstellung.

ABCpdf für .NET Implementierung:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}
// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using System;
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");
    }
}
$vbLabelText   $csharpLabel

Der Ansatz vonIronPDFmacht eine explizite Konfiguration der Engine und manuelle Bereinigungen überflüssig, wodurch die Komplexität des Codes reduziert wird und gleichzeitig die volle Renderingfähigkeit von Chrome erhalten bleibt.

Beispiel 2: HTML-String in PDF

Die Konvertierung von HTML-Strings in PDF ist für die Erstellung dynamischer Berichte und Dokumente unerlässlich.

ABCpdf für .NET Implementierung:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}
// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

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

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using System;
using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
$vbLabelText   $csharpLabel

Die IronPDF-Version kommt mit weniger Codezeilen aus und verwendet standardmäßig das Chrome-Rendering, um eine konsistente Ausgabe auf allen Plattformen zu gewährleisten.

Beispiel 3: Mehrere PDFs zusammenführen

Das Kombinieren mehrerer PDF-Dokumente ist eine häufige Anforderung in Dokumentenverarbeitungs-Workflows.

ABCpdf für .NET Implementierung:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc1 = new Doc();
        doc1.Read("document1.pdf");

        Doc doc2 = new Doc();
        doc2.Read("document2.pdf");

        doc1.Append(doc2);
        doc1.Save("merged.pdf");

        doc1.Clear();
        doc2.Clear();
    }
}
// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc1 = new Doc();
        doc1.Read("document1.pdf");

        Doc doc2 = new Doc();
        doc2.Read("document2.pdf");

        doc1.Append(doc2);
        doc1.Save("merged.pdf");

        doc1.Clear();
        doc2.Clear();
    }
}
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using System;
using System.Collections.Generic;
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 System;
using System.Collections.Generic;
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");
    }
}
$vbLabelText   $csharpLabel

Die statische Merge-Methode vonIronPDFbietet eine sauberere API, die mehrere Dokumente akzeptiert, wodurch die Notwendigkeit entfällt, einzelne Doc-Instanzen zu verfolgen und zu löschen.

Beispiel 4: Vollständiges Migrationsmuster mit Rändern

Dieses Beispiel zeigt eine vollständige Vorher/Nachher-Migration für die Erstellung von PDFs mit benutzerdefinierten Rändern.

Vor (ABCpdf für .NET):

using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

public byte[] GeneratePdf(string html)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome;
    doc.Rect.Inset(20, 20);
    doc.AddImageHtml(html);
    byte[] data = doc.GetData();
    doc.Clear();  // Manual cleanup required
    return data;
}
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

public byte[] GeneratePdf(string html)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome;
    doc.Rect.Inset(20, 20);
    doc.AddImageHtml(html);
    byte[] data = doc.GetData();
    doc.Clear();  // Manual cleanup required
    return data;
}
$vbLabelText   $csharpLabel

Nach (IronPDF):

using IronPdf;

public byte[] GeneratePdf(string html)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 20;
    renderer.RenderingOptions.MarginBottom = 20;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    using var pdf = renderer.RenderHtmlAsPdf(html);
    return pdf.BinaryData;  // Automatic cleanup with 'using'
}
using IronPdf;

public byte[] GeneratePdf(string html)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 20;
    renderer.RenderingOptions.MarginBottom = 20;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    using var pdf = renderer.RenderHtmlAsPdf(html);
    return pdf.BinaryData;  // Automatic cleanup with 'using'
}
$vbLabelText   $csharpLabel

Erweiterte Migrationsszenarien

ASP.NET Core Web-Anwendung

Für Teams, die Webanwendungen mit .NET 6+ entwickeln oder für die Veröffentlichung von .NET 10 in den Jahren 2025-2026 planen, wird das folgende Muster empfohlen:

ABCpdf-Muster:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome;
    doc.AddImageHtml(request.Html);
    byte[] pdfBytes = doc.GetData();
    doc.Clear();

    return File(pdfBytes, "application/pdf", "report.pdf");
}
[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome;
    doc.AddImageHtml(request.Html);
    byte[] pdfBytes = doc.GetData();
    doc.Clear();

    return File(pdfBytes, "application/pdf", "report.pdf");
}
$vbLabelText   $csharpLabel

IronPDF-Muster:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(request.Html);

    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(request.Html);

    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
$vbLabelText   $csharpLabel

Asynchrone PDF-Erzeugung

ABCpdf hat keine native async-Unterstützung.IronPDFbietet async-Methoden für eine bessere Leistung von Webanwendungen:

using IronPdf;

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}
using IronPdf;

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}
$vbLabelText   $csharpLabel

Einrichtung der Dependency Injection

Registrieren SieIronPDFin modernen .NET-Anwendungen unter Verwendung von C# 12+-Mustern, die mit zukünftigen C# 14-Versionen kompatibel sind:

// Program.cs (.NET 6+)
builder.Services.AddSingleton<ChromePdfRenderer>();

// Or create a service wrapper
public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register: builder.Services.AddSingleton<IPdfService, IronPdfService>();
// Program.cs (.NET 6+)
builder.Services.AddSingleton<ChromePdfRenderer>();

// Or create a service wrapper
public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register: builder.Services.AddSingleton<IPdfService, IronPdfService>();
$vbLabelText   $csharpLabel

Tipps zur Leistungsoptimierung

Wiederverwendung des Renderers für Batch-Operationen

// Good: Single renderer instance
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

// Bad: New renderer each time (slower startup)
foreach (var html in htmlList)
{
    var renderer = new ChromePdfRenderer(); // Overhead!
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}
// Good: Single renderer instance
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

// Bad: New renderer each time (slower startup)
foreach (var html in htmlList)
{
    var renderer = new ChromePdfRenderer(); // Overhead!
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}
$vbLabelText   $csharpLabel

Vergleich der Speichernutzung

Szenario ABCpdf für .NET IronPDF Notizen
Einzelne 10-seitige PDF-Datei ~80 MB ~50 MB IronPDFeffizienter
Stapel von 100 PDFs Hoch (manuelle Bereinigung) ~100 MB Verwenden Sie benutzen-Anweisungen
Großes HTML (5MB+) Variable ~150 MB Beide benötigen Chunking für große Dokumente

Fehlerbehebung bei allgemeinen Migrationsproblemen

PDF wird leer wiedergegeben

Symptom: Die PDF-Ausgabe hat nach der Migration leere Seiten.

Lösung: JavaScript-Inhalte werden vor dem Rendern möglicherweise nicht vollständig geladen:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
// Or wait for specific element:
renderer.RenderingOptions.WaitFor.HtmlElementById("content-loaded");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
// Or wait for specific element:
renderer.RenderingOptions.WaitFor.HtmlElementById("content-loaded");
$vbLabelText   $csharpLabel

Kopf-/Fußzeilen werden nicht angezeigt

Symptom: TextHeader/TextFooter in der Ausgabe nicht sichtbar.

Lösung: Stellen Sie sicher, dass die Ränder Platz für Kopf- und Fußzeilen lassen:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40; // mm - leave room for header
renderer.RenderingOptions.MarginBottom = 40; // mm - leave room for footer

renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Header Text",
    FontSize = 12
};
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40; // mm - leave room for header
renderer.RenderingOptions.MarginBottom = 40; // mm - leave room for footer

renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Header Text",
    FontSize = 12
};
$vbLabelText   $csharpLabel

Migrations-Checkliste

Vor der Migration

  • Überprüfen Sie die gesamte Verwendung von ABCpdf mit grep -r &quot;WebSupergoo&quot; --include=&quot;*.cs&quot; .
  • Dokumentieren Sie die aktuellen Anforderungen an die PDF-Ausgabe
  • Erstellen Sie Testfälle mit Beispiel-PDF-Ausgaben zum Vergleich
  • IronPDF-Lizenzschlüssel erhalten
  • Backup der Codebasis

Während der Migration

  • Entfernen Sie das NuGet-Paket ABCpdf
  • Installieren Sie das IronPdf NuGet-Paket
  • Lizenzschlüssel beim Anwendungsstart hinzufügen
  • Aktualisieren Sie alle using -Anweisungen
  • Konvertierung Doc -Instanziierung in ChromePdfRenderer
  • Ersetzen Sie doc.Clear()durch using -Anweisungen
  • Aktualisierung der Methodenaufrufe pro API-Zuordnung
  • Koordinatenbasierte Layouts in CSS-Ränder umwandeln

Nach der Migration

  • Alle vorhandenen PDF-Tests ausführen
  • Visueller Vergleich der PDF-Ausgaben (ABCpdf vs. IronPDF)
  • Alle PDF-Workflows in der Staging-Umgebung testen
  • Leistungsvergleich
  • ABCpdf-Lizenzkonfiguration entfernen
  • CI/CD-Pipeline-Abhängigkeiten aktualisieren
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