Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von Scryber.Core zu IronPDF in C# migriert

Migrieren Sie von Scryber.Core zu IronPDF: Vollständiger C#-Migrationsleitfaden

Durch die Migration von Scryber.Core zuIronPDFwird Ihr PDF-Generierungs-Workflow von einer benutzerdefinierten XML/HTML-Parsing-Engine auf einen modernen Chromium-basierten Renderer mit vollständiger CSS3- und JavaScript-Unterstützung umgestellt. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der Bedenken hinsichtlich der LGPL-Lizenzierung, der proprietären Vorlagensyntax und der begrenzten Rendering-Funktionen ausräumt.

Warum von Scryber.Core zuIronPDFmigrieren

Scryber.Core kennenlernen

Scryber.Core ist eine Open-Source-Bibliothek, die HTML-Vorlagen mit C# in PDFs umwandelt. Diese Fähigkeit macht es zu einem attraktiven Werkzeug für Entwickler, die mit Webentwicklung und HTML vertraut sind. Im Gegensatz zu anderen PDF-Lösungen, die spezielle Kenntnisse in der Dokumentenkodierung erfordern, nutzt Scryber.Core die Vielseitigkeit von HTML und die CSS-Styling-Funktionen, um einen intuitiveren Ansatz für die PDF-Generierung zu bieten.

Obwohl Scryber.Core für viele Entwickler vor allem aufgrund seiner ideologischen Ausrichtung auf Open-Source-Prinzipien und der Flexibilität, die es bietet, eine praktikable Option ist, ist es nicht ohne Einschränkungen.

Wichtige Gründe für die Migration

  1. Bedenken zur LGPL-Lizenz: Die LGPL-Lizenz verlangt, dass alle Änderungen an der Bibliothek selbst als Open Source zur Verfügung gestellt werden, was für einige kommerzielle Anwendungen einschränkend sein kann
  2. Benutzerdefinierte Vorlagen-Syntax: Proprietäre Bindungssyntax erfordert Lernkurve
  3. Eingeschränkte CSS-Unterstützung: Kein vollständiger browserbasierter Renderer
  4. Kleinere Gemeinschaft: Weniger Dokumentation und Community-Beispiele
  5. Keine JavaScript-Ausführung: Nur statisches Rendering
  6. Komplexe Konfiguration: XML-lastiger Konfigurationsansatz
  7. Beschränkter kommerzieller Support: Scryber.Core wird hauptsächlich von der Community unterstützt

Vergleich zwischen Scryber.Core und IronPDF

Aspekt Scryber.Core IronPDF
Lizenz LGPL (restriktiv) Kommerziell
Rendering-Engine Benutzerdefiniert Chromium
CSS-Unterstützung Beschränkt Vollständig CSS3
JavaScript Nein Vollständiger ES2024
Vorlage Bindung Proprietäres XML Standard (Razor, etc.)
Lernkurve Benutzerdefinierte Syntax Standard HTML/CSS
Async-Unterstützung Beschränkt Voll
Dokumentation Basic Umfangreiche
Community-Unterstützung Kleiner Groß
Kommerzielle Unterstützung Beschränkt Professionelle Unterstützung inklusive

IronPDF bietet im Vergleich zu Scryber.Core kommerziellen Support für Unternehmen, eine umfangreiche Dokumentation und eine größere Community. Die Bibliothek bietet flexiblere Lizenzierungsoptionen ohne LGPL-Beschränkungen, was sie ideal für kommerzielle Anwendungen macht.

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietet die moderne Chromium-Engine vonIronPDFvolle Kompatibilität mit den aktuellen Webstandards.


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 Scryber.Core
dotnet remove package Scryber.Core

# Install IronPDF
dotnet add package IronPdf
# Remove Scryber.Core
dotnet remove package Scryber.Core

# Install 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

Komplette API-Referenz

Namensraumänderungen

// Before: Scryber.Core
using Scryber.Components;
using Scryber.Components.Pdf;
using Scryber.PDF;
using Scryber.Styles;
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: Scryber.Core
using Scryber.Components;
using Scryber.Components.Pdf;
using Scryber.PDF;
using Scryber.Styles;
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;

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

Kern-API-Zuordnungen

Scryber.Core IronPDF Notizen
Document.ParseDocument(html) renderer.RenderHtmlAsPdf(html) HTML-Rendering
Document.ParseTemplate(path) renderer.RenderHtmlFileAsPdf(path) Datei-Rendering
doc.SaveAsPDF(Pfad) pdf.SaveAs(Pfad) In Datei speichern
doc.SaveAsPDF(stream) pdf.Stream oder pdf.BinaryData Stream/Bytes abrufen
doc.Info.Title pdf.MetaData.Title Metadaten
doc.Info.Autor pdf.MetaData.Author Metadaten
PDFSeite pdf.Seiten[i] Zugriff auf die Seite
PDFLayoutDocument RenderingOptions Layout-Kontrolle
PDFStyle CSS in HTML Gestaltung
doc.RenderOptions.PaperSize RenderingOptions.PaperSize Papierformat
Datenbindung ({{wert}}) Razor/String-Interpolation Vorlagenerstellung

Beispiele für die Code-Migration

Beispiel 1: Einfache Konvertierung von HTML in PDF

Vor (Scryber.Core):

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("output.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("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();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

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

Dieses Beispiel verdeutlicht den grundlegenden architektonischen Unterschied. Scryber.Core verwendet Document.ParseDocument() mit einem ParseSourceType.DynamicContent-Parameter, um HTML-Inhalte zu parsen, was einen using-Block für die ordnungsgemäße Entsorgung erfordert. Das Dokument wird dann mit SaveAsPDF() gespeichert.

IronPDF verwendet eine ChromePdfRenderer-Instanz mit RenderHtmlAsPdf(), um HTML direkt zu rendern. Die PDF-Datei wird mit SaveAs() gespeichert. Eine manuelle Entsorgung ist nicht erforderlich -IronPDFübernimmt die Bereinigung automatisch. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Konvertierung von URL in PDF

Vor (Scryber.Core):

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        string html = await client.GetStringAsync("https://www.example.com");

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("webpage.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        string html = await client.GetStringAsync("https://www.example.com");

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.SaveAsPDF("webpage.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.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Scryber.Core kann URLs nicht direkt in PDF konvertieren. Sie müssen den HTML-Inhalt manuell mit HttpClient.GetStringAsync() abrufen und dann das heruntergeladene HTML mit Document.ParseDocument() parsen. Bei diesem Ansatz fehlen die Ausführung von JavaScript, dynamische Inhalte und die richtige CSS-Auflösung, da der benutzerdefinierte Parser keine Skripte ausführt.

Die Methode RenderUrlAsPdf() vonIronPDFwickelt den gesamten Prozess in einem einzigen Aufruf ab, einschließlich der vollständigen Ausführung von JavaScriptund CSS-Rendering mit der Chromium-Engine. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Benutzerdefinierte Seiteneinstellungen und Ränder

Vor (Scryber.Core):

// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.RenderOptions.Compression = OutputCompressionType.FlateDecode;
            doc.RenderOptions.PaperSize = PaperSize.A4;
            doc.SaveAsPDF("custom.pdf");
        }
    }
}
// NuGet: Install-Package Scryber.Core
using Scryber.Core;
using Scryber.Core.Html;
using Scryber.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";

        using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent))
        {
            doc.RenderOptions.Compression = OutputCompressionType.FlateDecode;
            doc.RenderOptions.PaperSize = PaperSize.A4;
            doc.SaveAsPDF("custom.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;

        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;

        string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Scryber.Core verwendet doc.RenderOptions, um nach dem Parsen des Dokuments Ausgabeeinstellungen wie Compression (auf OutputCompressionType.FlateDecode gesetzt) und PaperSize (auf PaperSize.A4 gesetzt) zu konfigurieren.

IronPDF verwendet RenderingOptionsfür den Renderer vor dem Rendering. Zu den Eigenschaften gehören PaperSize (gesetzt auf PdfPaperSize.A4), MarginTop und MarginBottom, die in Millimetern angegeben werden. Der Hauptunterschied besteht darin, dassIronPDFeine direkte Randsteuerung über numerische Eigenschaften bietet, während Scryber.Core XML-basiertes Gestaltungverwendet.


Migrationsmuster für Vorlagen

Migration proprietärer Bindungen zu Standardvorlagen

Scryber.Core verwendet eine proprietäre XML-basierte Bindungssyntax, die in ein Standard-Templating konvertiert werden muss:

Scryber.Core Binding:

<pdf:Para text='{{model.Name}}' />
<pdf:Para text='Total: {{model.Total:C}}' />
<pdf:ForEach on='{{model.Items}}'>
    <pdf:Para text='{{.Name}}: {{.Price}}' />
</pdf:ForEach>
<pdf:Para text='{{model.Name}}' />
<pdf:Para text='Total: {{model.Total:C}}' />
<pdf:ForEach on='{{model.Items}}'>
    <pdf:Para text='{{.Name}}: {{.Price}}' />
</pdf:ForEach>
XML

IronPDF mit C# String-Interpolation:

var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>");

var html = $@"
<p>{model.Name}</p>
<p>Total: {model.Total:C}</p>
<ul>
    {string.Join("", items)}
</ul>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>");

var html = $@"
<p>{model.Name}</p>
<p>Total: {model.Total:C}</p>
<ul>
    {string.Join("", items)}
</ul>";

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

Der entscheidende Vorteil:IronPDFverwendet Standard-C# und -HTML, so dass Sie eine beliebige Template-Engine (Razor, Handlebars usw.) verwenden können und keine proprietäre Syntax lernen müssen.


Kopf- und Fußzeilen-Migration

Scryber.Core (XML-basierte Kopf-/Fußzeile):

<?xml version='1.0' encoding='utf-8' ?>
<pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'>
    <Pages>
        <pdf:Section>
            <Header>
                <pdf:Para text='Company Report' />
            </Header>
            <Footer>
                <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' />
            </Footer>
            <Content>
                <pdf:H1 text='Content Here' />
            </Content>
        </pdf:Section>
    </Pages>
</pdf:Document>
<?xml version='1.0' encoding='utf-8' ?>
<pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'>
    <Pages>
        <pdf:Section>
            <Header>
                <pdf:Para text='Company Report' />
            </Header>
            <Footer>
                <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' />
            </Footer>
            <Content>
                <pdf:H1 text='Content Here' />
            </Content>
        </pdf:Section>
    </Pages>
</pdf:Document>
XML

IronPDF (HTML-Kopf-/Fußzeilen):

using IronPdf;

var renderer = new ChromePdfRenderer();

// HTML header with full CSS support
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'>
            Company Report
        </div>",
    MaxHeight = 30
};

// HTML footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>");
pdf.SaveAs("report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// HTML header with full CSS support
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'>
            Company Report
        </div>",
    MaxHeight = 30
};

// HTML footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>");
pdf.SaveAs("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Scryber.Core erfordert eine XML-basierte Definition von Kopf- und Fußzeilen mit proprietären Platzhaltern wie {{pagenum}} und {{pagetotal}}.IronPDFverwendet vollständiges HTML/CSSfür Kopf- und Fußzeilen mit {page} und {total-pages} Platzhaltern.


Neue Funktionen nach der Migration

Nach der Umstellung aufIronPDFerhalten Sie Funktionen, die Scryber.Core nicht bieten kann:

PDF-Zusammenführung

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2, pdf3);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

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

Sicherheit und Metadaten

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

// Metadata
pdf.MetaData.Title = "My Document";
pdf.MetaData.Author = "John Doe";
pdf.MetaData.Subject = "Annual Report";
pdf.MetaData.Keywords = "report, annual, confidential";

// Security
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

pdf.SaveAs("protected.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

// Metadata
pdf.MetaData.Title = "My Document";
pdf.MetaData.Author = "John Doe";
pdf.MetaData.Subject = "Annual Report";
pdf.MetaData.Keywords = "report, annual, confidential";

// Security
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

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

Zusammenfassung des Funktionsvergleichs

Feature Scryber.Core IronPDF
HTML zu PDF Basic Vollständiges Chromium
URL zu PDF Manuell abrufen Native Unterstützung
CSS-Raster Beschränkt Volle Unterstützung
Flexbox Beschränkt Volle Unterstützung
JavaScript Nein Vollständiger ES2024
Datenbindung Proprietäres XML Razor/Handlebars verwenden
Kopf-/Fußzeilen XML-basiert HTML/CSS
PDFs zusammenführen Beschränkt Eingebaut
PDFs teilen Nein Ja
Wasserzeichen Basic Vollständiges HTML
Digitale Signaturen Nein Ja
PDF/A Nein Ja
Passwortschutz Basic Voll
Async-Unterstützung Beschränkt Voll
Plattformübergreifend Ja Ja

Migrations-Checkliste

Vor der Migration

  • [Überprüfung aller Scryber-Vorlagen auf XML/Bindungsmuster
  • [Verwendete Muster für die Datenbindung von Dokumenten ({{model.Property}})
  • [Identifizieren Sie benutzerdefinierte Stile, die eine CSS-Konvertierung benötigen
  • [Den IronPDF-Lizenzschlüssel erhalten Sie von ironpdf.com

Code-Aktualisierungen

  • [Entfernen Sie das NuGet-Paket Scryber.Core
  • [Installieren Sie das NuGet-Paket IronPdf
  • [Aktualisieren von Namensraum-Importen (Verwendung von Scryber.Core;Verwendung von IronPdf;)
  • [Ersetzen Sie Document.ParseDocument(html, ParseSourceType.DynamicContent) mit renderer.RenderHtmlAsPdf(html)
  • [Ersetzen Sie doc.SaveAsPDF() durch pdf.SaveAs()
  • [XML-Vorlagen in HTML konvertieren
  • [Ersetzen der proprietären Bindung durch Standard-Templating (Razor/String-Interpolation)
  • [Seiteneinstellungen aktualisieren: doc.RenderOptions.PaperSizerenderer.RenderingOptions.PaperSize
  • [Konvertierung von Kopf- und Fußzeilen ins HTML-Format mit den Platzhaltern {page} und {total-pages}
  • [Lizenzinitialisierung beim Starten der Anwendung hinzufügen

Testing

  • [Alle Dokumentvorlagen testen
  • [Überprüfen Sie die Übereinstimmung des Stylings (nutzen Sie die volle CSS-Unterstützung)
  • [Testen Sie die Datenbindung mit dem neuen Templating
  • [Seitenumbrüche überprüfen
  • [Testen Sie Kopf- und Fußzeilen mit Platzhaltern für Seitenzahlen
  • [Leistungsvergleich

Abschluss

Bei der Wahl zwischen Scryber.Core undIronPDFkommt es letztlich auf die Projektanforderungen, das Budget und den gewünschten Grad an Unterstützung an. Für Projekte, bei denen die Open-Source-Lizenzierung mit dem Geschäftsmodell übereinstimmt und HTML-Vorlagen bevorzugt werden, bietet Scryber.Core eine solide Grundlage. Für Unternehmen, die eine kommerziell unterstützte Plattform mit breiter Community-Unterstützung suchen, istIronPDFdie beste Wahl.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Rendering Engine: Benutzerdefinierter Parser → Chromium-basiert
  2. CSS-Unterstützung: Eingeschränkt → Vollständig CSS3
  3. JavaScript: Nicht unterstützt → Voll ES2024
  4. Lizenzierung: LGPL (restriktiv) → Kommerziell (flexibel)
  5. HTML Parsing: Document.ParseDocument(html, ParseSourceType.DynamicContent)renderer.RenderHtmlAsPdf(html)
  6. URL-Rendering: Manuelles HttpClient Abrufen → Natives RenderUrlAsPdf()
  7. Seiteneinstellungen: doc.RenderOptions.PaperSize = PaperSize.A4renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
  8. Margins: XML-Stile → renderer.RenderingOptions.MarginTop = 40 (numerisch mm)
  9. Speichermethode: doc.SaveAsPDF()pdf.SaveAs()
  10. Datenbindung: Proprietäre {{value}}-Syntax → Standard C#/Razor
  11. Kopf-/Fußzeilen: XML mit {{pagenum}} → HTML mit {page}
  12. Neue Funktionen: PDF zusammenführen, aufteilen, Wasserzeichen, digitale Signaturen, PDF/A, volle Sicherheit

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