Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von PrinceXML zu IronPDF in C#

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

Durch die Migration von PrinceXMLzuIronPDFwird Ihr PDF-Erzeugungsworkflow von einem externen Befehlszeilenprozess zu einer nativen .NET-Bibliothek umgewandelt. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der den Aufwand für die Prozessverwaltung eliminiert, die Bereitstellung vereinfacht und umfangreiche PDF-Bearbeitungsfunktionen über die Generierung hinaus bietet.

Warum von PrinceXMLzuIronPDFmigrieren

PrinceXMLkennenlernen

PrinceXML ist ein hochentwickeltes Werkzeug, das sich durch seine spezielle Unterstützung der CSS Paged Media-Spezifikationen bei der Umwandlung von HTML-Inhalten in druckfertige PDF-Dokumente auszeichnet. Diese Spezialisierung ermöglicht es PrinceXML, Dokumente mit hoher Wiedergabetreue zu den beabsichtigten Druckdesigns wiederzugeben - ein wertvolles Attribut für Branchen, die ein detailliertes Druckstyling erfordern, wie z. B. das Verlagswesen oder juristische Dokumentation.

PrinceXML ist jedoch keine .NET-Bibliothek und arbeitet als separates Befehlszeilen-Tool, was die Integration für Umgebungen, die reine .NET-Lösungen bevorzugen, erschweren kann. Die Abhängigkeit von einem separaten Serverprozess führt zu einer zusätzlichen Verwaltung der Systemressourcen und einer potenziell höheren Komplexität bei der Projektbereitstellung.

Das Problem des externen Prozesses

PrinceXML wird als separates Befehlszeilenprogramm ausgeführt, was erhebliche architektonische Herausforderungen für .NET-Anwendungen mit sich bringt:

  1. Prozessmanagement-Aufwand: Muss externe Prozesse erzeugen, überwachen und beenden.

  2. Keine native .NET-Integration: Kommunizieren Sie über stdin/stdout oder temporäre Dateien.

  3. Komplexität bei der Bereitstellung: Erfordert die Prince-Installation auf jedem Server.

  4. Lizenzierung pro Server: Für jede Bereitstellung ist eine eigene Lizenz erforderlich ($495+).

  5. Schwierigkeit der Fehlerbehandlung: Parsen der Textausgabe zur Fehlererkennung.

  6. Kein Async/Await: Blockierende Aufrufe oder komplexe Async-Wrapper erforderlich.

  7. Pfad-Abhängigkeiten: Die ausführbare Datei von Prince muss im PATH oder im absoluten Pfad zu finden sein.

Vergleich zwischen PrinceXMLund IronPDF

Aspekt PrinceXML IronPDF
Architektur Externer Prozess Native .NET-Bibliothek
Integration Befehlszeile Direkte API
Einsatz Auf jedem Server installieren Einzelnes NuGet-Paket
Fehlerbehandlung Parsen der Textausgabe .NET-Ausnahmen
Async-Unterstützung Handbuch Wrapper Natives async/await
PDF-Bearbeitung Nur Generierung Vollständige Manipulation (Zusammenführen, Teilen, Bearbeiten)
Lizenzierung Pro Server ($495+) Pro Entwickler
Aktualisierungen Manuelle Neuinstallation NuGet-Aktualisierung
Fehlersuche Schwierig Vollständige Debugger-Unterstützung
Digitale Signaturen Nein Ja
Formulare Nein Ja
Docker-Unterstützung Komplex Einfach
Cloud-Funktionen Schwierig Einfach

IronPDF bietet mit seinen nativen .NET-Funktionen eine Alternative, die über die reine HTML-zu-PDF-Konvertierung hinausgeht und auch erweiterte PDF-Bearbeitungsaufgaben wie das Bearbeiten, Zusammenführen und digitale Signieren umfasst. Die API vonIronPDFist auf Einfachheit und Benutzerfreundlichkeit ausgelegt und ermöglicht es Entwicklern, Konvertierungen und Manipulationen mit minimalem Boilerplate-Code durchzuführen.

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 bzw. 2026 planen, erleichtert die nahtlose Bereitstellung vonIronPDFdie Integration in das .NET Framework, da keine externen Abhängigkeiten oder Serverprozesse erforderlich sind.


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

# Install IronPDF
dotnet add package IronPdf

# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
# Install IronPDF
dotnet add package IronPdf

# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
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

Suchen Sie nach PrinceXML-Verwendung

# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
SHELL

Komplette API-Referenz

Namensraumänderungen

// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;

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

Zuordnung von Befehlszeilen zu Methoden

Prince Command IronPDF-Äquivalent
prince input.html -o output.pdf renderer.RenderHtmlFileAsPdf("input.html").SaveAs("output.pdf")
prince --style=custom.css input.html CSS in HTML einbinden oder RenderingOptions verwenden
prince --javascript renderer.RenderingOptions.EnableJavaScript = true
prince --no-javascript renderer.RenderingOptions.EnableJavaScript = false
prince --page-size=Letter renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
prince --page-margin=1in renderer.RenderingOptions.MarginTop = 72 (72 Punkte = 1 Zoll)
prince --encrypt pdf.SecuritySettings.OwnerPassword = "..."
prince --benutzer-passwort=pw pdf.SecuritySettings.UserPassword = "pw"
prince --disallow-print pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
prince --disallow-copy pdf.SecuritySettings.AllowUserCopyPasteContent = false
prince --baseurl=http://... renderer.RenderingOptions.BaseUrl = new Uri("http://...")
prince --media=print renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
prince --media=screen renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen

CSS @page zu RenderingOptions Mapping

CSS @page-Eigenschaft IronPDF-Äquivalent
Größe: A4 PaperSize = PdfPaperSize.A4
Größe: Letter PaperSize = PdfPaperSize.Letter
Größe: A4quer PaperSize = PdfPaperSize.A4+ PaperOrientation = Landscape
Rand: 2cm MarginTop/Bottom/Left/Right = 56
Margin-top: 1in MarginTop = 72
@top-center { content: "..." } HtmlHeader mit zentriertem div
@bottom-right { content: counter(page) } HtmlFooter mit {Seite} Platzhalter

Seitengrößenumwandlung

Größe Punkte Millimeter
Brief 612 x 792 216 x 279
A4 595 x 842 210 x 297
Rechtliches 612 x 1008 216 x 356
1 Zoll 72 25.4
1 cm 28.35 10

Beispiele für die Code-Migration

Beispiel 1: Konvertierung einer HTML-Datei in ein PDF-Dokument

Vor (PrinceXML):

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

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("input.html", "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("input.html", "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den grundlegenden architektonischen Unterschied. PrinceXMLerfordert die Instanziierung eines Prince-Objekts mit dem vollständigen Pfad zur ausführbaren Datei ("C:\\ProgrammePrinceprince.exe") und den anschließenden Aufruf von Convert() mit Eingabe- und Ausgabepfaden.

IronPDF eliminiert Pfadabhängigkeiten vollständig: Erstellen Sie einen ChromePdfRenderer, rufen Sie RenderHtmlFileAsPdf() mit dem HTML-Dateipfad auf, und SaveAs(), um das Ergebnis zu schreiben. Keine ausführbaren Pfade, kein Prozessmanagement, keine Pfadabhängigkeiten. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: URL-zu-PDF-Konvertierung mit Optionen

Vor (PrinceXML):

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

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.SetJavaScript(true);
        prince.SetEncrypt(true);
        prince.SetPDFTitle("Website Export");
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.SetJavaScript(true);
        prince.SetEncrypt(true);
        prince.SetPDFTitle("Website Export");
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.PdfTitle = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.Encrypt("password");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.PdfTitle = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.Encrypt("password");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel zeigt, wie PrinceXML-Optionen auf IronPDF-Eigenschaften abgebildet werden. PrinceXMLverwendet vor der Konvertierung Setter-Methoden (SetJavaScript(), SetEncrypt(), SetPDFTitle()).IronPDFverwendet RenderingOptions-Eigenschaften für Pre-Rendering-Einstellungen und Post-Rendering-Methoden wie Encrypt() für das PdfDocument-Objekt.

Schlüssel-Mappings:

  • prince.SetJavaScript(true)renderer.RenderingOptions.EnableJavaScript = true
  • prince.SetPDFTitle("...")renderer.RenderingOptions.PdfTitle = "..."
  • prince.SetEncrypt(true)pdf.Encrypt("password") (IronPDF erfordert ein Passwort)

Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Konvertierung von HTML-Strings in PDF

Vor (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
        File.WriteAllText("temp.html", html);

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("temp.html", "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
        File.WriteAllText("temp.html", html);

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("temp.html", "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht einen entscheidenden Unterschied: PrinceXMLerfordert eine Dateieingabe, daher müssen Sie vor der Konvertierung eine temporäre Datei erstellen (File.WriteAllText("temp.html", html)). IronPDFs RenderHtmlAsPdf() akzeptiert HTML-Strings direkt - keine temporären Dateien, kein Bereinigungscode, kein Festplatten-E/A-Overhead.


Migrieren von CSS-Seitenmedien

Die CSS-Paged-Media-Unterstützung von PrinceXMList zwar leistungsfähig, führt aber zu einer Herstellerbindung mit Prince-spezifischem CSS, das anderswo nicht funktioniert:

PrinceXML CSS:

@page {
    size: A4;
    margin: 2cm;
    @top-center {
        content: "Document Title";
    }
    @bottom-right {
        content: counter(page);
    }
}

/* Prince-specific extensions */
prince-pdf-page-label: "Chapter " counter(chapter);
prince-pdf-destination: attr(id);

IronPDF C# (gleichwertig):

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56;    // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
    MaxHeight = 40
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56;    // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
    MaxHeight = 40
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Gängige Probleme bei der CSS-Migration

Ausgabe 1: CSS @page funktioniert nicht

IronPDF verwendet Chromium, das eine begrenzte @page-Unterstützung bietet. CSS-Regeln in RenderingOptions umwandeln.

Problem 2: Fehlende Seitenrandkästen

CSS-Randfelder (@top-center, @bottom-right) sind Prince-spezifisch. Verwenden Sie stattdessen HtmlHeader/HtmlFooter.

Ausgabe 3: string-set/content funktioniert nicht

Die CSS-Eigenschaft string-set ist Prince-spezifisch. Verwenden Sie den {html-title}-Platzhalter aus dem <title>-Tag:

<title>Chapter 1: Introduction</title>
<title>Chapter 1: Introduction</title>
HTML
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 4: Zähler (Seiten) Falsch

Verwenden Sie den {total-pages}-Platzhalter vonIronPDFanstelle von CSS-Zählern.


Leistungsvergleich

Betrieb PrinceXML IronPDF Notizen
Einfaches HTML ~400ms ~300ms IronPDFin Bearbeitung
Komplexes CSS ~600ms ~400ms Kein Prozess-Overhead
JavaScript-Seiten Beschränkt ~500ms Volle JS-Unterstützung
Große Dokumente ~1500ms ~1000ms Besseres Gedächtnis
Gleichlaufend (10) ~4000ms ~1500ms Thread-Pool
Startup-Overhead ~200ms ~50ms Keine Prozessausprägung

Neue Funktionen nach der Migration

Nach der Umstellung aufIronPDFerhalten Sie Funktionen, die PrinceXMLnicht bieten kann:

PDF-Zusammenführung

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

Wasserzeichen

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Digitale Signaturen

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Formularausfüllen

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zusammenfassung des Funktionsvergleichs

Feature PrinceXML IronPDF
Native .NET Nein Ja
Externer Prozess Erforderlich Nein
Async-Unterstützung Manueller Umbruch Natives async/await
CSS Ausgelagerte Medien Volle Unterstützung Über RenderingOptions
CSS-Raster Ja Ja
Flexbox Ja Ja
JavaScript Beschränkt Vollständiger ES2024
Generation Ja Ja
Zusammenführen Nein Ja
Teilen Nein Ja
Bearbeiten Nein Ja
Wasserzeichen Nur CSS HTML/CSS + API
Digitale Signaturen Nein Ja
PDF/A Ja Ja
Verschlüsselung Ja Ja
Formulare Nein Ja
NuGet-Paket Nein Ja
Server installieren Erforderlich Nein

Migrations-Checkliste

Vor der Migration

  • [Identifizieren Sie alle Prince-Befehlszeilenaufrufe
  • [Verwendete CSS @page-Regeln dokumentieren
  • [Liste Prince-spezifischer CSS-Eigenschaften (prince-*, string-set)
  • [Beachten Sie alle Prince JavaScript-Funktionen
  • [Identifizieren Sie die verwendeten PDF-Funktionen (Verschlüsselung, Metadaten)
  • [Den IronPDF-Lizenzschlüssel erhalten Sie von ironpdf.com

Code-Änderungen

  • [Entfernen Sie das NuGet-Paket PrinceXMLWrapper
  • [Installieren Sie das NuGet-Paket IronPdf
  • [Namespace-Importe aktualisieren
  • [Ersetzen Sie die Instanzierung von Prince durch ChromePdfRenderer
  • [Ersetzen Sie prince.Convert() durch RenderHtmlFileAsPdf() oder RenderHtmlAsPdf()
  • [Setter-Methoden in RenderingOptions-Eigenschaften umwandeln
  • [@page CSS nach RenderingOptions migrieren
  • [Ersetzen Sie Randfelder durch HtmlHeader/HtmlFooter
  • [CSS-Zähler in {page}/{total-pages} Platzhalter umwandeln
  • [Behandlung temporärer Dateien für HTML-Strings entfernen
  • [Lizenzinitialisierung beim Starten der Anwendung hinzufügen

Post-Migration

  • [Test der HTML-Dateikonvertierung
  • [Test der HTML-String-Konvertierung
  • [URL-Konvertierung testen
  • [Überprüfen Sie, ob die Seitengrößen übereinstimmen
  • [Überprüfen Sie die Übereinstimmung der Seitenränder
  • [Kopf- und Fußzeilen testen
  • [Überprüfen Sie die Seitenzahlen
  • [Test Verschlüsselung/Sicherheit
  • [Prince-Installation von Servern entfernen
  • [Aktualisieren von Deployment-Skripten

Abschluss

Für Entwickler, die innerhalb des .NET-Ökosystems arbeiten, bietetIronPDFeine robuste und umfassende Lösung. Die umfangreichen Manipulationsmöglichkeiten und die schlanke Integration machen es für eine Vielzahl von Anwendungsfällen äußerst praktisch. Wenn andererseits die Druckpräzision im Vordergrund steht, insbesondere bei der Nutzung von CSS Paged Media-Funktionen, bleibt PrinceXMLeine gute Wahl.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Architektur: Externer Befehlszeilenprozess → Native .NET-Bibliothek
  2. Instantiation: new Prince("path/to/exe")new ChromePdfRenderer()
  3. Dateikonvertierung: prince.Convert(input, output)renderer.RenderHtmlFileAsPdf(input).SaveAs(output)
  4. HTML Strings: Temporäre Datei erforderlich → Direkt RenderHtmlAsPdf(html)
  5. Optionen: Setter-Methoden (SetJavaScript()) → Eigenschaften (RenderingOptions.EnableJavaScript)
  6. CSS @page: Native Unterstützung → RenderingOptions Eigenschaften
  7. Kopf-/Fußzeilen: CSS Randboxen → HtmlHeader/HtmlFooter Objekte
  8. Seitenzahlen: CSS-Zähler → {page} und {total-pages} Platzhalter
  9. Neue Funktionen: PDF zusammenführen, aufteilen, bearbeiten, Wasserzeichen, digitale Signaturen, Ausfüllen von Formularen

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