Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von QuestPDF zu IronPDF in C# migriert

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

Die Migration von QuestPDF zuIronPDFverwandelt Ihren PDF-Generierungs-Workflow von einer proprietären C#-API in einen standardmäßigen HTML/CSS-basierten Ansatz mit umfassenden PDF-Manipulationsmöglichkeiten. Dieses Handbuch bietet einen vollständigen, schrittweisen Migrationspfad, der es Ihnen ermöglicht, vorhandene Webkenntnisse zu nutzen, HTML-Vorlagen wiederzuverwenden und Funktionen zu erhalten, die QuestPDF einfach nicht bieten kann.

Warum von QuestPDF zuIronPDFmigrieren

QuestPDF kennenlernen

QuestPDF ist eine moderne, fließende API, die speziell für die programmatische Erzeugung von PDFs in C# entwickelt wurde. Im Gegensatz zu einigen seiner Konkurrenten, die umfassende HTML-zu-PDF-Konvertierungsfunktionen anbieten, beschränkt sich QuestPDF auf programmatische Layout-API-Funktionen. QuestPDF eignet sich hervorragend für Szenarien, in denen Entwickler Dokumente von Grund auf mit C#-Code generieren müssen, ohne sich dabei auf HTML zu verlassen.

Die Bibliothek ist für Unternehmen mit einem Umsatz von weniger als 1 Mio. USD kostenlos, allerdings muss diese Umsatzhöhe nachgewiesen werden, was für einige Unternehmen eine Belastung bei der Einhaltung von Vorschriften darstellen könnte. Benutzer, die diese Schwelle überschreiten, müssen eine Lizenz erwerben, was bei der Bewertung von QuestPDF als potenzielle Lösung in die langfristige Planung einbezogen werden muss.

Das Kernproblem: Keine HTML-Unterstützung

QuestPDF wird oft für die HTML-zu-PDF-Konvertierung empfohlen, unterstützt aber HTML überhaupt nicht. Obwohl QuestPDF in Entwicklerforen stark beworben wird, verwendet es eine eigene, proprietäre Layout-Sprache, die das Erlernen einer völlig neuen DSL erfordert, anstatt die vorhandenen Webkenntnisse zu nutzen.

Feature QuestPDF IronPDF
HTML-zu-PDF NICHT UNTERSTÜTZT Volle Unterstützung
CSS-Styling NICHT UNTERSTÜTZT Vollständig CSS3
Vorhandene Vorlagen Muss von Grund auf neu erstellt werden Wiederverwendung von HTML/CSS-Assets
Kompatibilität der Entwicklungswerkzeuge Keine Jedes Web-Design-Tool
Lernkurve Neue proprietäre DSL Vermittlung von Webkenntnissen
Layout-Vorschau Erfordert IDE-Plugin Vorschau in jedem Browser
PDF-Bearbeitung Keine Zusammenführen, Aufteilen, Bearbeiten

IronPDF bietet ein natives HTML-zu-PDF-Rendering, das QuestPDF völlig fehlt, wodurch die Notwendigkeit entfällt, Dokumente manuell in C#-Code zu rekonstruieren. Sie enthält umfassende PDF-Manipulationsfunktionen (Zusammenführen, Teilen, Bearbeiten, Sichern), die QuestPDF nicht bieten kann.

Das QuestPDF-Lizenzierungsmodell

Die "Community-Lizenz" von QuestPDF ist nur dann kostenlos, wenn Ihr Unternehmen einen jährlichen Bruttoumsatz von weniger als 1 Million US-Dollar erzielt. Ihre Kunden (nicht nur Sie als Entwickler) müssen möglicherweise Lizenzen erwerben, wenn sie Umsatzschwellen überschreiten. Im Gegensatz zu einer einfachen kommerziellen Lizenz pro Entwickler erfordert das Modell von QuestPDF eine Offenlegung der Einnahmen und eine Nachverfolgung der Einhaltung der Vorschriften.

IronPDF bietet eine einfache Lizenzierung: eine Lizenz pro Entwickler, keine Umsatzprüfungen, keine Anforderungen an die Kundenlizenzierung und klare, vorhersehbare Kosten.

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine transparente Lizenzierung ohne umsatzabhängige Audits und einen Standard-HTML/CSS-Ansatz, der die vorhandenen Webentwicklungskenntnisse nutzt.


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 QuestPDF
dotnet remove package QuestPDF

# Add IronPDF
dotnet add package IronPdf
# Remove QuestPDF
dotnet remove package QuestPDF

# Add IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Finden Sie QuestPDF Verwendung

# Find all QuestPDF usages in your codebase
grep -r "QuestPDF\|Document.Create\|\.GeneratePdf" --include="*.cs" .
# Find all QuestPDF usages in your codebase
grep -r "QuestPDF\|Document.Create\|\.GeneratePdf" --include="*.cs" .
SHELL

Komplette API-Referenz

Namensraumänderungen

// Before: QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

// After: IronPDF
using IronPdf;
// Before: QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

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

Kern-API-Zuordnungen

QuestPDF-Konzept IronPDF-Äquivalent Notizen
Document.Create() new ChromePdfRenderer() Renderer-Erstellung
.Seite() RenderHtmlAsPdf() Rendert HTML in PDF
.Text() HTML <p>, <h1>, <span> Standard-HTML-Tags
.Bold() CSS Schriftgewicht: fett Standard-CSS
.FontSize(24) CSS Schriftgröße: 24px Standard-CSS
.Image() HTML <img src="..."> Standard-HTML
.Tabelle() HTML <table> Standard-HTML
.Column() CSS anzeige: flex; flex-direction: column` CSS Flexbox
.Row() CSS anzeige: flex; flex-direction: row` CSS Flexbox
Seitengrößen.A4 RenderingOptions.PaperSize Abmessungen des Papiers
.Margin() RenderingOptions.Margin* Seitenränder
.GeneratePdf() pdf.SaveAs() Dateiausgabe
Nicht anwendbar PdfDocument.Merge() PDFs zusammenführen
Nicht anwendbar PdfDocument.FromFile() Vorhandene PDFs laden
Nicht anwendbar pdf.SecuritySettings PDF-Verschlüsselung

Beispiele für die Code-Migration

Beispiel 1: Einfache Dokumentenerstellung (HTML-zu-PDF)

Vor (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("Hello World").FontSize(20).Bold();
                    column.Item().Text("This is a paragraph of text.");
                });
            });
        }).GeneratePdf("output.pdf");
    }
}
// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("Hello World").FontSize(20).Bold();
                    column.Item().Text("This is a paragraph of text.");
                });
            });
        }).GeneratePdf("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><p>This is a paragraph of text.</p>");
        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><p>This is a paragraph of text.</p>");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den grundlegenden Paradigmenunterschied. QuestPDF erfordert das Erlernen seiner fließenden API: Document.Create(), container.Page(), page.Content().Column(), column.Item().Text(), mit Styling über Methodenverkettung wie .FontSize(20).Bold(). Sie müssen auch den Lizenztyp mit QuestPDF.Settings.License = LicenseType.Community festlegen.

IronPDF verwendet Standard-HTML, das jeder Webentwickler kennt: <h1> für Überschriften, <p> für Absätze. Sie müssen keine proprietäre DSL erlernen. Der Ansatz vonIronPDFbietet eine sauberere Syntax und eine bessere Integration in moderne .NET-Anwendungen. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Erstellung von Rechnungen

Vor (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("INVOICE").FontSize(24).Bold();
                    column.Item().Text("Invoice #: 12345").FontSize(12);
                    column.Item().PaddingTop(20);
                    column.Item().Text("Customer: John Doe");
                    column.Item().Text("Total: $100.00").Bold();
                });
            });
        }).GeneratePdf("invoice.pdf");
    }
}
// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("INVOICE").FontSize(24).Bold();
                    column.Item().Text("Invoice #: 12345").FontSize(12);
                    column.Item().PaddingTop(20);
                    column.Item().Text("Customer: John Doe");
                    column.Item().Text("Total: $100.00").Bold();
                });
            });
        }).GeneratePdf("invoice.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var htmlContent = @"
            <h1>INVOICE</h1>
            <p>Invoice #: 12345</p>
            <br/>
            <p>Customer: John Doe</p>
            <p><strong>Total: $100.00</strong></p>
        ";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("invoice.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var htmlContent = @"
            <h1>INVOICE</h1>
            <p>Invoice #: 12345</p>
            <br/>
            <p>Customer: John Doe</p>
            <p><strong>Total: $100.00</strong></p>
        ";

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

QuestPDF verwendet .Column()und .Item() für das Layout, mit .PaddingTop(20)für die Abstände.IronPDFverwendet Standard-HTML: <h1> für den Titel, <p> für Absätze, <br/> für Abstände und <strong> für fettgedruckten Text.

Der eigentliche Vorteil: MitIronPDFkönnen Designer HTML-Vorlagen selbständig erstellen und ändern. Bei QuestPDF muss ein C#-Entwickler bei jeder Designänderung den Code ändern. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Kopf- und Fußzeilen mit Seitenzahlen

Vor (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);

                page.Header().Text("Document Header").FontSize(14).Bold();

                page.Content().Text("Main content of the document.");

                page.Footer().AlignCenter().Text(text =>
                {
                    text.Span("Page ");
                    text.CurrentPageNumber();
                });
            });
        }).GeneratePdf("document.pdf");
    }
}
// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;

        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);

                page.Header().Text("Document Header").FontSize(14).Bold();

                page.Content().Text("Main content of the document.");

                page.Footer().AlignCenter().Text(text =>
                {
                    text.Span("Page ");
                    text.CurrentPageNumber();
                });
            });
        }).GeneratePdf("document.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var htmlContent = "<p>Main content of the document.</p>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        pdf.Header = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            FontSize = 14
        };

        pdf.Footer = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

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

class Program
{
    static void Main()
    {
        var htmlContent = "<p>Main content of the document.</p>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        pdf.Header = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            FontSize = 14
        };

        pdf.Footer = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

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

QuestPDF verwendet page.Header() und page.Footer() mit fließenden Methoden wie .AlignCenter()und .CurrentPageNumber().IronPDFverwendet TextHeaderFooter-Objekte mit Eigenschaften wie CenterText und FontSize. Der {page}-Platzhalter fügt automatisch die aktuelle Seitenzahl ein.


Kritische Hinweise zur Migration

Der Paradigmenwechsel

Die grundlegende Änderung ist der Wechsel von einer proprietären C#-DSL zu Standard-HTML/CSS:

// QuestPDF: Proprietary fluent API
container.Page(page =>
{
    page.Content().Column(column =>
    {
        column.Item().Text("Invoice").Bold().FontSize(24);
        column.Item().Row(row =>
        {
            row.RelativeItem().Text("Customer:");
            row.RelativeItem().Text("Acme Corp");
        });
    });
});

// IronPDF: Standard HTML/CSS
var html = @"
<div style='font-family: Arial; padding: 40px;'>
    <h1 style='font-weight: bold; font-size: 24px;'>Invoice</h1>
    <div style='display: flex; justify-content: space-between;'>
        <span>Customer:</span>
        <span>Acme Corp</span>
    </div>
</div>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// QuestPDF: Proprietary fluent API
container.Page(page =>
{
    page.Content().Column(column =>
    {
        column.Item().Text("Invoice").Bold().FontSize(24);
        column.Item().Row(row =>
        {
            row.RelativeItem().Text("Customer:");
            row.RelativeItem().Text("Acme Corp");
        });
    });
});

// IronPDF: Standard HTML/CSS
var html = @"
<div style='font-family: Arial; padding: 40px;'>
    <h1 style='font-weight: bold; font-size: 24px;'>Invoice</h1>
    <div style='display: flex; justify-content: space-between;'>
        <span>Customer:</span>
        <span>Acme Corp</span>
    </div>
</div>";

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

Layout-Muster-Konvertierungen

QuestPDF-Muster HTML/CSS-Äquivalent
.Column() anzeige: flex; flex-direction: column`
.Row() anzeige: flex; flex-direction: row`
.RelativeItem() flex: 1
.Tabelle() <table>-Element
.PaddingTop(20) padding-top: 20px oder <br/>
.AlignCenter() text-align: center
.FontSize(24) Schriftgröße: 24px
.Bold() Schriftgröße: fett oder <strong>

Konvertierung von Seiteneinstellungen

// QuestPDF
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);

// IronPDF
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;    // mm (2cm = 20mm)
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// QuestPDF
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);

// IronPDF
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;    // mm (2cm = 20mm)
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Neue Funktionen nach der Migration

Nach der Umstellung aufIronPDFerhalten Sie Funktionen, die QuestPDF nicht bieten kann:

PDF-Zusammenführung

var cover = renderer.RenderHtmlAsPdf("<h1>Cover</h1>");
var content = renderer.RenderHtmlAsPdf(reportHtml);
var existing = PdfDocument.FromFile("appendix.pdf");

var merged = PdfDocument.Merge(cover, content, existing);
merged.SaveAs("complete.pdf");
var cover = renderer.RenderHtmlAsPdf("<h1>Cover</h1>");
var content = renderer.RenderHtmlAsPdf(reportHtml);
var existing = PdfDocument.FromFile("appendix.pdf");

var merged = PdfDocument.Merge(cover, content, existing);
merged.SaveAs("complete.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF-Sicherheit

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "reader";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "reader";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Laden und Bearbeiten vorhandener PDFs

var pdf = PdfDocument.FromFile("existing.pdf");
// Modify, merge, add security, etc.
pdf.SaveAs("modified.pdf");
var pdf = PdfDocument.FromFile("existing.pdf");
// Modify, merge, add security, etc.
pdf.SaveAs("modified.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zusammenfassung des Funktionsvergleichs

Feature QuestPDF IronPDF
HTML-zu-PDF Nicht unterstützt Primäres Merkmal
Lernkurve Proprietäre DSL Standard-Webkenntnisse
Vorlage Vorschau Plugin erforderlich Jeder Browser
Zusammenarbeit gestalten Nur Entwickler Designer+Entwickler
Vorhandene Ressourcen Muss wiederhergestellt werden HTML/CSS wiederverwenden
PDF-Bearbeitung Nicht unterstützt Volle Unterstützung
Sicherheit/Signatur Nicht unterstützt Volle Unterstützung
Lizenzierungsmodell Umsatzbasiert Pro-Entwickler
Kundenwirkung Benötigt eventuell Lizenzen Keine
Bootstrap/Tailwind Nicht unterstützt Volle Unterstützung
URL zu PDF Nicht unterstützt Volle Unterstützung

Migrations-Checkliste

Vor der Migration

  • [Identifizieren Sie alle QuestPDF-Dokumentenvorlagen (Document.Create, .GeneratePdf)
  • [Dokumentieren Sie die verwendeten DSL-Muster (.Column(), .Row(), .Table(), .Text())
  • [Styling-Methoden auf CSS-Äquivalente abbilden
  • [Den IronPDF-Lizenzschlüssel erhalten Sie von ironpdf.com

Paketänderungen

  • [Entfernen Sie das NuGet-Paket QuestPDF
  • [Installieren Sie das NuGet-Paket IronPdf: dotnet add package IronPdf

Code-Änderungen

  • [Namespace-Importe aktualisieren
  • [Entfernen Sie QuestPDF.Settings.License = LicenseType.Community
  • [Konvertiere Document.Create()Muster in ChromePdfRenderer + HTML
  • [Ersetzen Sie .Column()/ .Row()durch CSS Flexbox
  • [Ersetzen von .Tabelle()durch HTML <table>-Elemente
  • [Konvertieren Sie .Text().Bold().FontSize(24) in <h1> style="...">
  • [Ersetzen Sie Seite.Kopfzeile() / Seite.Fußzeile() durch TextKopfzeileFußzeile
  • [Ersetze .CurrentPageNumber() mit {page} Platzhalter
  • [Konvertieren Sie .GeneratePdf()in pdf.SaveAs()
  • [Lizenzinitialisierung beim Starten der Anwendung hinzufügen

Post-Migration

  • [Visueller Vergleich der PDF-Ausgabe
  • [Prüfung mehrseitiger Dokumente auf korrekte Seitenumbrüche
  • [Fügen Sie bei Bedarf neue Funktionen hinzu (Sicherheit, Zusammenführung, URL-to-PDF)

Abschluss

QuestPDF undIronPDFdienen unterschiedlichen Zwecken im Bereich der PDF-Erzeugung und -Bearbeitung. QuestPDF glänzt in Situationen, in denen das Design der PDF-Datei mit einem programmatischen Ansatz sorgfältig gestaltet werden muss. Die fließende API ist von Vorteil für Benutzer, die eine hohe Wiedergabetreue der fertigen HTML-Konvertierung vorziehen.

Auf der anderen Seite bietetIronPDFeine robuste Suite für Entwickler, die eine allumfassende PDF-Lösung benötigen, einschließlich HTML-Konvertierung und erweiterter Manipulationsfunktionen, mit einem transparenten Lizenzierungsmodell.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Paradigma: Proprietäre C# fließende API → Standard HTML/CSS
  2. Vorlagenerstellung: Nur C#-Code → Designer können HTML/CSS beisteuern
  3. Vorschau: IDE-Plugin erforderlich → Jeder Webbrowser
  4. Initialisierung: QuestPDF.Settings.License = LicenseType.CommunityIronPdf.License.LicenseKey
  5. Layout: .Column()/ .Row()→ CSS Flexbox
  6. Styling: Methodenverkettung (.Bold().FontSize(24)) → CSS-Eigenschaften
  7. Kopf-/Fußzeilen: Seite.Kopfzeile() / Seite.Fußzeile()TextHeaderFooter Objekte
  8. Seitenzahlen: .CurrentPageNumber(){page} Platzhalter
  9. Speichern: .GeneratePdf("file.pdf")pdf.SaveAs("file.pdf")
  10. Neue Funktionen: PDF-Zusammenführung, Aufteilung, Sicherheit, digitale Signaturen, URL-to-PDF

Letztendlich hängt die Wahl zwischen QuestPDF undIronPDFvon den spezifischen Anforderungen Ihres Projekts ab. Wenn nahtlose HTML-Integration und umfassende PDF-Bearbeitung entscheidend sind, istIronPDFdie beste Wahl.

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