Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von PDFreactor zu IronPDF in C#

Migrieren Sie von PDFreactorzu IronPDF: Vollständige C#-Migrationsanleitung

Die Migration von PDFreactorzuIronPDFbeseitigt Java-Abhängigkeiten und die Server-Infrastruktur und bietet gleichzeitig gleichwertige HTML-zu-PDF-Konvertierungsfunktionen durch eine native .NET-Bibliothek. Dieses Handbuch bietet einen vollständigen, schrittweisen Migrationspfad, der Ihre Java-basierte Serverarchitektur durch eine prozessinterne Bibliothek ersetzt, die sich nahtlos in .NET-Anwendungen integrieren lässt.

Warum von PDFreactorzuIronPDFmigrieren

PDFreactorkennenlernen

PDFreactor ist ein leistungsstarker HTML-zu-PDF-Konvertierungsserver, der sich in verschiedene Plattformen integrieren lässt. Als kommerzielle Lösung nutzt PDFreactorseine proprietäre Technologie, um HTML- und CSS-Inhalte in hochwertige PDF-Dokumente zu konvertieren. Zu den bemerkenswerten Eigenschaften von PDFreactorgehört, dass es eine Vielzahl von CSS-Eigenschaften unterstützt, was es zu einem guten Kandidaten für komplexes Layout-Rendering macht.

Die Tatsache, dass PDFreactorauf Java basiert, stellt jedoch in .NET-Umgebungen eine gewisse Herausforderung dar, da die nicht-native Natur von Java den Einsatz und die Integration erschweren kann. Die Abhängigkeit von Java führt zu zusätzlichem Aufwand in .NET-Anwendungen und erfordert oft zusätzliche Integrationsarbeit.

Das Java-Abhängigkeitsproblem

Die Architektur von PDFreactorbringt einige Herausforderungen in .NET-Umgebungen mit sich:

  1. Java Runtime erforderlich: Erfordert die Installation von JRE/JDK auf allen Servern.

  2. Server-Architektur: Läuft als separater Dienst, der zusätzliche Infrastruktur benötigt. Als serverbasierte Lösung benötigt PDFreactorfür jede Konvertierung einen REST-API-Aufruf.

  3. Komplexe Bereitstellung: Die Verwaltung von Java-Abhängigkeiten in einem hauptsächlich auf .NET basierenden Ökosystem kann die Einrichtung verkomplizieren und die Wartungskosten erhöhen. Zwei Laufzeiten (Java + .NET) zur Verwaltung in CI/CD-Pipelines.

  4. Inter-Prozess-Kommunikation: REST-API- oder Socket-Kommunikation führt zu Latenzzeiten. Jede PDF-Konvertierung erfordert einen HTTP-Roundtrip zum Server.

  5. Trennende Lizenzverwaltung: Die Lizenz ist an die Serverinstanz gebunden, nicht an die Anwendung. Die Lizenzierung pro Server ist an die Java-Service-Instanz gebunden.

  6. Ressourcenisolierung: Getrennte Verwaltung von Prozessspeicher und CPU. Zusätzlicher Server zur Überwachung, Skalierung und Wartung.

PDFreactorvsIronPDFVergleich

Merkmal/Aspekt PDFreactor IronPDF
Native .NET-Bibliothek Nein (Java-basiert) Ja
Laufzeit Java (externer Server) Native .NET(in Bearbeitung)
Architektur REST-API-Dienst NuGet-Bibliothek
Einsatz Java + Server-Konfiguration Einzelnes NuGet-Paket
Abhängigkeiten JRE + HTTP-Client In sich geschlossen
Latenzzeit Netzwerk-Round-Trip Direkte Methodenaufrufe
Plattformübergreifende Eignung Ja (Java-abhängig) Ja (Gebündeltes Chromium)
CSS-Unterstützung Erweiterte Unterstützung für CSS3, CSS Paged Media Umfassende HTML5/CSS3-Unterstützung
Bereitstellungskomplexität Komplexer aufgrund von Java Einfach, direkt integriert mit .NET
Funktionen zur PDF-Bearbeitung Basic (nur Generierung) Umfangreich, einschließlich Zusammenführen, Teilen, Bearbeiten und Kommentieren

Im Gegensatz zu PDFreactorpräsentiert sichIronPDFals native .NET-Bibliothek, die speziell für die nahtlose Integration in .NET-Projekte ohne externe Abhängigkeiten wie Java entwickelt wurde.IronPDFverwendet eine gebündelte Chromium-Rendering-Engine, die es ermöglicht, HTML mit nur wenigen Codezeilen in PDF zu konvertieren.

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine native .NET-Lösung, die die Komplexität von Java-Servern eliminiert und gleichzeitig ein umfassendes PDF-Lifecycle-Management bietet.


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 PDFreactorNuGet packages
dotnet remove package PDFreactor.NET
dotnet remove package PDFreactor.Native.Windows.x64

# Stop PDFreactorserver service (if running locally)
# Windows: net stop PDFreactor
# Linux: sudo systemctl stop pdfreactor

# Install IronPDF
dotnet add package IronPdf
# Remove PDFreactorNuGet packages
dotnet remove package PDFreactor.NET
dotnet remove package PDFreactor.Native.Windows.x64

# Stop PDFreactorserver service (if running locally)
# Windows: net stop PDFreactor
# Linux: sudo systemctl stop pdfreactor

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

PDFreactor (serverbasiert):

// License configured on server via config file or command line
// Client connects to licensed server
var pdfReactor = new PDFreactor("http://pdfreactor-server:9423");
// License configured on server via config file or command line
// Client connects to licensed server
var pdfReactor = new PDFreactor("http://pdfreactor-server:9423");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF (Anwendungsebene):

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

PDFreactor-Verwendung identifizieren

# Find PDFreactorusage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .

# Find CSS Ausgelagerte Medienrules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
# Find PDFreactorusage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .

# Find CSS Ausgelagerte Medienrules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
SHELL

Komplette API-Referenz

Namensraumänderungen

// Before: PDFreactor
using RealObjects.PDFreactor;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PDFreactor
using RealObjects.PDFreactor;
using System.IO;

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

Kernklassen-Zuordnungen

PDFreactor IronPDF Notizen
PDFreactor ChromePdfRenderer Hauptkonvertierungsklasse
Konfiguration ChromePdfRenderOptions PDF-Einstellungen
Ergebnis PdfDocument Ausgabedokument
config.Document = html renderer.RenderHtmlAsPdf(html) HTML-Eingabe
result.Document (byte[]) pdf.BinaryData Rohbytes

Zuordnungen von Konfigurationseigenschaften

PDFreactor-Konfiguration IronPDFRenderingOptionen Notizen
config.Document = html renderer.RenderHtmlAsPdf(html) HTML-Inhalt
config.Document = url renderer.RenderUrlAsPdf(url) URL-Konvertierung
config.PageFormat = PageFormat.A4 RenderingOptions.PaperSize = PdfPaperSize.A4 Papierformat
config.PageOrientation RenderingOptions.PaperOrientation Orientierung
config.PageMargins RenderingOptions.MarginTop/Bottom/Left/Right Ränder (mm)
config.EnableJavaScript = true RenderingOptions.EnableJavaScript = true JS-Ausführung
config.AddUserStyleSheet(css) CSS in HTML einbetten CSS-Einspritzung
config.Titel pdf.MetaData.Title Metadaten
config.Encryption pdf.SecuritySettings Sicherheit

Neue Funktionen, die in PDFreactornicht verfügbar sind

IronPDFMerkmal Beschreibung
PdfDocument.Merge() Mehrere PDFs zusammenführen
pdf.ApplyWatermark() Wasserzeichen hinzufügen
pdf.ExtractAllText() Textextraktion
pdf.Form Ausfüllen von Formularen
pdf.Sign() Digitale Signaturen

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML-Strings in PDF

Vor (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        Configuration config = new Configuration();
        config.Document = html;

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("output.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        Configuration config = new Configuration();
        config.Document = html;

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("output.pdf", result.Document);
    }
}
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();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

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

Der grundlegende Unterschied ist das Architekturmuster. PDFreactorerfordert die Erstellung einer PDFreactor-Instanz (die sich mit dem Java-Server verbindet), eines separaten Configuration-Objekts, das Einstellungen und HTML-Inhalte enthält, den Aufruf von Convert(), das ein Result-Objekt zurückgibt, und schließlich das Schreiben der Result.Document-Bytes in eine Datei mit File.WriteAllBytes().

IronPDF vereinfacht dies, indem es einen ChromePdfRenderererstellt, RenderHtmlAsPdf() direkt mit der HTML-Zeichenkette aufruft und die integrierte Methode SaveAs() für das zurückgegebene PdfDocumentverwendet. Keine Serververbindung, kein Konfigurationsobjekt, keine manuelle Byte-Verarbeitung. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Konvertierung von URL in PDF

Vor (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        Configuration config = new Configuration();
        config.Document = "https://www.example.com";

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("webpage.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        Configuration config = new Configuration();
        config.Document = "https://www.example.com";

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("webpage.pdf", result.Document);
    }
}
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.RenderUrlAsPdf("https://www.example.com");

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

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

PDFreactor verwendet die gleiche config.Document-Eigenschaft sowohl für HTML-Strings als auch für URLs und bestimmt den Typ automatisch.IronPDFbietet explizite Methoden: RenderHtmlAsPdf() für HTML-Strings und RenderUrlAsPdf() für URLs. Dieser explizite Ansatz verbessert die Klarheit des Codes und die IntelliSense-Unterstützung. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Kopf- und Fußzeilen mit Seitenzahlen

Vor (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        Configuration config = new Configuration();
        config.Document = html;
        config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }");

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("document.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
        PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        Configuration config = new Configuration();
        config.Document = html;
        config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }");

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("document.pdf", result.Document);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Header Text"
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Header Text"
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

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

Dieses Beispiel zeigt den größten Unterschied in der Syntax. PDFreactorverwendet die CSS Paged Media-Syntax mit @page-Regeln, @top-center/@bottom-center-Regionen und counter(page) für Seitenzahlen, die über AddUserStyleSheet() eingefügt werden.

IronPDF verwendet eine native .NET-API mit TextHeaderFooter-Objekten, die RenderingOptions.TextHeader und RenderingOptions.TextFooter zugewiesen sind. Für Seitenzahlen wird der Platzhalter {page} anstelle von CSS counter(page) verwendet. Beachten Sie, dassIronPDFauch den Import des IronPdf.Rendering-Namensraums für Kopf- und Fußzeilenklassen erfordert.


Kritische Hinweise zur Migration

Kein Server erforderlich

IronPDF wird prozessintern ausgeführt - es muss kein Java-Server konfiguriert werden:

// PDFreactor: Requires server connection
var pdfReactor = new PDFreactor("http://localhost:9423");

// IronPDF: No server URL needed
var renderer = new ChromePdfRenderer();
// PDFreactor: Requires server connection
var pdfReactor = new PDFreactor("http://localhost:9423");

// IronPDF: No server URL needed
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

CSS Ausgelagerte MedienzuIronPDFAPI

Ersetzen Sie CSS @page-Regeln durch RenderingOptions:

// PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
//IronPDFequivalent:
renderer.RenderingOptions.TextFooter = new TextHeaderFooter 
{ 
    CenterText = "Page {page}" 
};
// PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
//IronPDFequivalent:
renderer.RenderingOptions.TextFooter = new TextHeaderFooter 
{ 
    CenterText = "Page {page}" 
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Seitennummern-Platzhalter-Syntax

// PDFreactorCSS: counter(page)
// IronPDF: {page}

// PDFreactorCSS: counter(pages)  
// IronPDF: {total-pages}
// PDFreactorCSS: counter(page)
// IronPDF: {page}

// PDFreactorCSS: counter(pages)  
// IronPDF: {total-pages}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Änderung der Ergebnisbehandlung

Konfiguration + Ergebnismuster wird direkt zu PdfDocument:

// PDFreactor: Configuration → Convert → Result → bytes
Result result = pdfReactor.Convert(config);
byte[] bytes = result.Document;
File.WriteAllBytes("output.pdf", bytes);

// IronPDF: Direct PdfDocument with built-in methods
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or: byte[] bytes = pdf.BinaryData;
// PDFreactor: Configuration → Convert → Result → bytes
Result result = pdfReactor.Convert(config);
byte[] bytes = result.Document;
File.WriteAllBytes("output.pdf", bytes);

// IronPDF: Direct PdfDocument with built-in methods
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or: byte[] bytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Margeneinheiten ändern

PDFreactor verwendet Zeichenketten;IronPDFarbeitet mit Millimetern:

// PDFreactor: config.PageMargins.Top = "1in"
// IronPDF: renderer.RenderingOptions.MarginTop = 25.4  // 1 inch in mm
// PDFreactor: config.PageMargins.Top = "1in"
// IronPDF: renderer.RenderingOptions.MarginTop = 25.4  // 1 inch in mm
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Neue Funktionen nach der Migration

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

PDF-Zusammenführung

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

Wasserzeichen

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

Textextraktion

string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
Dim text As String = pdf.ExtractAllText()
$vbLabelText   $csharpLabel

Passwortschutz

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zusammenfassung des Funktionsvergleichs

Feature PDFreactor IronPDF
HTML zu PDF
URL zu PDF
Kopf-/Fußzeilen CSS Ausgelagerte Medien Native API
Seite Einstellungen
JavaScript-Unterstützung
Native .NET
In Bearbeitung
PDFs zusammenführen
PDFs teilen
Wasserzeichen
Textextraktion
Formular ausfüllen
Digitale Signaturen

Migrations-Checkliste

Vor der Migration

  • [Inventarisierung der gesamten PDFreactor-Nutzung in der Codebase
  • [Dokumentieren Sie alle verwendeten CSS Paged Media-Regeln
  • [Beachten Sie alle Konfigurationseinstellungen (Ränder, Seitengröße, JavaScript)
  • [Planen Sie die Speicherung des IronPDF-Lizenzschlüssels (Umgebungsvariablen empfohlen)
  • [Testen Sie zunächst mit der IronPDF-Testlizenz

Paketänderungen

  • [Entfernen Sie das NuGet-Paket PDFreactor.NET
  • [Entfernen Sie das NuGet-Paket PDFreactor.Native.Windows.x64
  • [Installieren Sie das NuGet-Paket IronPdf: dotnet add package IronPdf

Code-Änderungen

  • [Aktualisieren von Namensraum-Importen (Verwendung von RealObjects.PDFreactor;Verwendung von IronPdf;)
  • [Hinzufügen von Verwendung von IronPdf.Rendering; für Kopf-/Fußzeilen-Klassen
  • [Ersetzen Sie die PDFreactor-Klasse durch ChromePdfRenderer
  • [Konvertieren von Konfiguration-Objekten in RenderingOptions-Eigenschaften
  • [Ersetzen Sie config.Document = htmlmit renderer.RenderHtmlAsPdf(html)
  • [Ersetzen Sie config.Document = urlmit renderer.RenderUrlAsPdf(url)
  • [Ersetzen Sie File.WriteAllBytes(path, result.Document) durch pdf.SaveAs(path)
  • [CSS @page Regeln in TextHeader/TextFooter Objekte umwandeln
  • [Seitenzahl-Platzhalter aktualisieren (Zähler(Seite){Seite})
  • [Randeinheiten von Strings in Millimeter umwandeln

Infrastruktur-Migration

  • [Java-Laufzeitvoraussetzung entfernen
  • [Außerbetriebnahme des PDFreactor-Servers
  • [Docker/Deployment-Konfigurationen aktualisieren
  • [CI/CD-Pipelines aktualisieren

Post-Migration

  • [Prüfen Sie, ob die Qualität der PDF-Ausgabe den Erwartungen entspricht
  • [Überprüfen Sie die Darstellung von Kopf- und Fußzeilen
  • [Überprüfen Sie die Ausführung von JavaScript, falls verwendet
  • [Fügen Sie bei Bedarf neue Funktionen (Zusammenführen, Wasserzeichen, Sicherheit) hinzu

Abschluss

Die Migration von PDFreactorzuIronPDFbeseitigt Java-Abhängigkeiten und die Server-Infrastruktur und bietet gleichzeitig gleichwertige HTML-zu-PDF-Funktionen. Die Wahl des richtigen Tools zwischen PDFreactorundIronPDFhängt weitgehend von den spezifischen Projektanforderungen und der vorhandenen Infrastruktur ab. Wenn Ihr Projekt ein originalgetreues Rendering mit umfassender CSS-Unterstützung erfordert und mit Java-Abhängigkeiten umgehen kann, ist PDFreactorein guter Kandidat. Wenn Sie dagegen in einer .NET-Umgebung entwickeln und eine nahtlose Integration und umfangreiche PDF-Funktionen wünschen, istIronPDFdie bessere Wahl.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Architektur: Server-basierter Java-Dienst → prozessinterne .NET-Bibliothek
  2. Hauptklasse: PDFreactorChromePdfRenderer
  3. Konfiguration: Konfiguration Objekt → RenderingOptions Eigenschaften
  4. HTML-Konvertierung: config.Document + Convert()RenderHtmlAsPdf()
  5. URL-Konvertierung: config.Document + Convert()RenderUrlAsPdf()
  6. Output: result.Document + File.WriteAllBytes()pdf.SaveAs()
  7. Kopf-/Fußzeilen: CSS @page Regeln → TextHeaderFooter Objekte
  8. Seitenzahlen: Zähler(Seite){Seite}
  9. Neue Funktionen: PDF-Zusammenführung, Wasserzeichen, Textextraktion, digitale Signaturen und mehr

Zu den wichtigsten Vorteilen gehören die vereinfachte Architektur, die keinen separaten Serverprozess erfordert, die native .NET-Integration mit direkten API-Aufrufen anstelle von REST/IPC, die geringere Komplexität mit einem einzigen NuGet-Paket im Vergleich zu Java-Runtime plus Server und die vollständige Unterstützung des PDF-Lebenszyklus über die Konvertierung hinaus, einschließlich Zusammenführen, Teilen, Bearbeiten und Signieren.

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