IRONSOFTWAREHOME
VIDEOS

Wie man Razor Pages in PDFs in einer ASP.NET Core Web App konvertiert

Curtis Chau
Curtis Chau
Updated: 19. Juli 2026

Der Wechsel von ABCpdf for .NET zu IronPDF ist 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 dem .NET Framework 4.6.2 arbeiten oder .NET 9 anvisieren, dieser ABCpdf-Migrationsleitfaden sorgt für einen reibungslosen Übergang zur Chrome-basierten Rendering-Engine von IronPDF.

Warum eine ABCpdf-Migration in Betracht ziehen?

ABCpdf von WebSupergoo (aktuelle Linie: v13.4.4, veröffentlicht am 9. April 2026) ist seit Jahren eine leistungsfähige .NET-PDF-Bibliothek. Jedoch gibt es mehrere Faktoren, die IronPDF zu einer attraktiven Alternative für moderne Entwicklungsteams machen.

Lizenzierungskomplexität

ABCpdf verwendet ein gestuftes Lizenzmodell, das Aufwand bei der Navigation erfordert. Die Standard-Einzellizenz kostet $329 (nur 32-Bit); Professional kostet $479; Professionelle Weiterverbreitung kostet 4.790 $; die Gruppenlizenz beläuft sich auf $33.530. Lizenzen sind unbefristet, und v13-Schlüssel decken auch v8–v12 ab. Viele Entwickler berichten, dass die Stufenregelung eine erhebliche Verwaltungsbelastung darstellt, wenn es um die Budgetplanung für Projekte geht.

Windows-First Architecture (until v13)

ABCpdf war für den größten Teil seiner Geschichte Windows-exklusiv. Linux-Unterstützung wurde in v13 über die ABCpdf.ABCChrome117.Linux und ABCpdf.ABCChrome123.Linux Laufzeitpakete hinzugefügt. macOS wird nicht unterstützt, und einige Windows-spezifische Funktionen (XPS, WPF) sind auf Linux nicht verfügbar.

Dokumentationsstil

Die Dokumentation von ABCpdf ist zwar gründlich, 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 — EngineType.Chrome123 (Standard in v13), Chrome117, Chrome86, Chrome65, Gecko, WebKit oder MSHtml — und manuelle Ressourcenverwaltung mit doc.Clear() Aufrufen. Dies fügt jedem PDF-Vorgang Kesselstein-Code hinzu, den moderne Entwickler lieber vermeiden würden.

##IronPDF vs. ABCpdf: Funktionsvergleich

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

FeatureABCpdf for .NETIronPDF
Rendering EngineABCChrome (Chrome123/117/86/65), Gecko, WebKit, MSHtmlVollständiges Chromium (CSS3, JavaScript)
PlattformübergreifendWindows-zuerst; Linux hinzugefügt in v13 (kein macOS)Native Windows, Linux, macOS, Docker
LizenzierungsmodellStandard $329 / Pro $479 / Pro-Weiterverbreitung $4,790 / Gruppe $33,530, unbefristetEinfache, transparente Preisgestaltung
.NET-Unterstützung.NET Framework 4.0+, .NET Core 3.0+, .NET 5+Framework 4.6.2 zu .NET 9
RessourcenmanagementManuelles doc.Clear() erforderlichIDisposable mit using Anweisungen
Lizenz-EinrichtungVerwendet häufig RegistryEinfacher codebasierter Lizenzschlüssel
DokumentationVeralteter StilModerne 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 for .NET verwenden:

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 for .NETund IronPDF verhindert Überraschungen bei der Migration:

KategorieABCpdf-VerhaltenIronPDF-VerhaltenMigration Aktion
ObjektmodellDoc Klasse ist zentralChromePdfRenderer + PdfDocumentRendering vom Dokument trennen
Bereinigung von RessourcenManuelles doc.Clear()IDisposable-MusterVerwenden Sie using Anweisungen
Auswahl des Motorsdoc.HtmlOptions.Engine = EngineType.Chrome123 (oder MSHtml)Eingebautes ChromiumEngine-Konfiguration entfernen
Indizierung der Seite1-basiert (doc.Page = 1)0-basiert (pdf.Pages[0])Index-Referenzen anpassen
KoordinatenPunkt-basiert mit doc.RectCSS-basierte RänderCSS oder RenderingOptions verwenden

Schnellstart: 5-Minuten-Migration

Schritt 1: NuGet-Pakete aktualisieren

# 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";

Schritt 3: Globales Suchen und Ersetzen

Aktualisieren Sie alle Namespace-Referenzen in Ihrer Codebasis:

Finden SieErsetzen durch
using WebSupergoo.ABCpdf13;using IronPdf;
using WebSupergoo.ABCpdf13.Objects;using IronPdf;
using WebSupergoo.ABCpdf12;using IronPdf;
using WebSupergoo.ABCpdf11;using IronPdf;

Komplette API-Referenz

Methoden der Dokumentenerstellung

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

ABCpdf-MethodeIronPDF-Methode
new Doc()new ChromePdfRenderer()
doc.AddImageUrl(url)renderer.RenderUrlAsPdf(url)
doc.AddImageHtml(html)renderer.RenderHtmlAsPdf(html)
doc.AddImageFile(path)renderer.RenderHtmlFileAsPdf(path)
doc.Read(path)PdfDocument.FromFile(path)
doc.Save(path)pdf.SaveAs(path)
doc.GetData()pdf.BinaryData
doc.Clear()Verwenden Sie using Anweisung

Seitenbearbeitungsmethoden

ABCpdf-MethodeIronPDF-Methode
doc.PageCountpdf.PageCount
doc.Page = npdf.Pages[n-1]
doc.Delete(pageId)pdf.RemovePages(index)
doc.Append(otherDoc)PdfDocument.Merge(pdf1, pdf2)
doc.Rect.Inset(x, y)RenderingOptions.MarginTop/Bottom/Left/Right

Sicherheit und Verschlüsselungsmethoden

ABCpdf-MethodeIronPDF-Methode
doc.Encryption.Passwordpdf.SecuritySettings.OwnerPassword
doc.Encryption.CanPrintpdf.SecuritySettings.AllowUserPrinting
doc.Encryption.CanCopypdf.SecuritySettings.AllowUserCopyPasteContent
doc.SetInfo("Title", value)pdf.MetaData.Title

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 for .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.Chrome123;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}

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");
    }
}

Der Ansatz von IronPDF macht 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 for .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.Chrome123;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}

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");
    }
}

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 for .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();
    }
}

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");
    }
}

Die statische Merge Methode von IronPDF bietet eine schlankere API, die mehrere Dokumente akzeptiert und die Notwendigkeit, einzelne Doc Instanzen zu verfolgen und zu löschen, beseitigt.

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 for .NET):

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

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

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'
}

Erweiterte Migrationsszenarien

ASP.NET Core Web-Anwendung

Für Teams, die Webanwendungen mit .NET 6+ entwickeln, finden Sie hier das empfohlene Muster:

ABCpdf-Muster:

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

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

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");
}

Asynchrone PDF-Erzeugung

ABCpdf hat keine native async-Unterstützung.IronPDF bietet 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;
}

Einrichtung der Dependency Injection

Registrieren Sie IronPDF in modernen .NET-Anwendungen, indem Sie aktuelle C#-Muster verwenden:

// 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>();

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");
}

Vergleich der Speichernutzung

SzenarioABCpdf for .NETIronPDF
Einzelne 10-seitige PDF-Datei~80 MB~50 MB
Stapel von 100 PDFsHoch (manuelle Bereinigung)~100 MB
Großes HTML (5MB+)Variable~150 MB

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

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
};

Migrations-Checkliste

Vor der Migration

  • Überprüfen Sie alle ABCpdf-Nutzungen mit grep -r "WebSupergoo" --include="*.cs" .
  • 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
  • Konvertieren Sie Doc Instanziierungen zu 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
Hinweis:: ABCpdf ist eine eingetragene Marke ihres jeweiligen Eigentümers. Diese Website steht in keiner Verbindung zu, wird nicht unterstützt von und wird nicht gesponsert von WebSupergoo Software. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.
Curtis Chau
Technischer Autor

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

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.