Comment migrer de PDFreactor à IronPDF en C#
La migration de PDFreactorversIronPDFélimine les dépendances Java et l'infrastructure du serveur tout en offrant des capacités équivalentes de conversion de HTML en PDF par le biais d'une bibliothèque .NET native. Ce guide fournit un chemin de migration complet, étape par étape, qui remplace votre architecture de serveur basée sur Java par une bibliothèque en cours de traitement qui s'intègre de manière transparente dans les applications .NET.
Pourquoi migrer de PDFreactorà IronPDF
Comprendre PDFreactor
PDFreactor est un puissant serveur de conversion HTML-PDF qui s'intègre à diverses plateformes. En tant que solution commerciale, PDFreactors'appuie sur sa technologie propriétaire pour convertir le contenu HTML et CSS en documents PDF de haute qualité. Parmi ses attributs notables, PDFreactorprend en charge un large éventail de propriétés CSS, ce qui en fait un candidat de choix pour le rendu de mises en page complexes.
Toutefois, la dépendance de PDFreactorà l'égard de Java pose certains problèmes dans les environnements .NET, où sa nature non native peut compliquer le déploiement et l'intégration. Sa dépendance à l'égard de Java entraîne une surcharge dans les applications .NET, ce qui nécessite souvent un travail d'intégration supplémentaire.
Le problème de la dépendance de Java
L'architecture de PDFreactorpose plusieurs problèmes dans les environnements .NET :
-
Environnement d'exécution Java requis : nécessite l'installation de JRE/JDK sur tous les serveurs.
-
Architecture serveur : Fonctionne comme un service distinct nécessitant une infrastructure supplémentaire. En tant que solution basée sur un serveur, PDFreactornécessite des appels à l'API REST pour chaque conversion.
-
Déploiement complexe : la gestion des dépendances Java dans un écosystème principalement .NET peut compliquer la configuration et augmenter les coûts de maintenance. Deux runtimes (Java + .NET) à gérer dans les pipelines CI/CD.
-
Communication inter-processus : la communication via API REST ou socket ajoute de la latence. Chaque conversion PDF nécessite un aller-retour HTTP vers le serveur.
-
Gestion séparée des licences : Licence liée à l'instance du serveur, et non à l'application. Licence par serveur liée à l'instance de service Java.
- Isolation des ressources : Gestion séparée de la mémoire et du processeur. Serveur supplémentaire à surveiller, à mettre à l'échelle et à entretenir.
Comparaison PDFreactorvs IronPDF
| Caractéristique/aspect | PDFreactor | IronPDF |
|---|---|---|
| Bibliothèque native .NET | Non (basé sur Java) | Oui |
| Runtime | Java (serveur externe) | Natif .NET(en cours) |
| Architecture | Service API REST | Bibliothèque NuGet |
| Déploiement | Java + configuration du serveur | Paquet NuGet unique |
| Dépendances | JRE + client HTTP | Autonome |
| Latence | Aller-retour sur le réseau | Appels de méthode directs |
| Capacité multiplateforme | Oui (dépendant de Java) | Oui (Chromium inclus) |
| Support CSS | Prise en charge avancée de CSS3, CSS Paged Media | Prise en charge complète de HTML5/CSS3 |
| Complexité du déploiement | Plus complexe en raison de Java | Simple, s'intègre directement à .NET |
| Fonctionnalités de manipulation du PDF | Basique (Génération uniquement) | Extensif, incluant la fusion, le fractionnement, l'édition et l'annotation |
Contrairement à PDFreactor,IronPDFse présente comme une bibliothèque native .NET, spécialement conçue pour s'intégrer de manière transparente dans les projets .NET sans dépendances externes comme Java.IronPDFutilise un moteur de rendu Chromium intégré, ce qui lui permet de convertir HTML en PDF avec seulement quelques lignes de code.
Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 d'ici 2025 et 2026,IronPDFfournit une solution native .NET qui élimine la complexité du serveur Java tout en offrant une gestion complète du cycle de vie des PDF.
Avant de commencer
Prérequis
- Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Accès à NuGet : possibilité d'installer des packages NuGet
- Licence IronPDF : Obtenez votre clé de licence sur IronPDF
Modifications du paquet NuGet
# 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
Configuration de la licence
PDFreactor (sur serveur):
// 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");
' License configured on server via config file or command line
' Client connects to licensed server
Dim pdfReactor = New PDFreactor("http://pdfreactor-server:9423")
IronPDF (niveau application):
// 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";
' One-time setup at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
Identifier l'utilisation de PDFreactor
# Find PDFreactorusage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .
# Find CSS Paged Mediarules 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 Paged Mediarules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
Référence API complète
Modifications de l'espace de nommage
// 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;
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
Mappages de classes de base
| PDFreactor | IronPDF |
|---|---|
PDFreactor |
ChromePdfRenderer |
Configuration |
ChromePdfRenderOptions |
Result |
PdfDocument |
config.Document = html |
renderer.RenderHtmlAsPdf(html) |
result.Document (byte[]) |
pdf.BinaryData |
Mappages de propriétés de configuration
| Configuration de PDFreactor | Options de rendu IronPDF |
|---|---|
config.Document = html |
renderer.RenderHtmlAsPdf(html) |
config.Document = url |
renderer.RenderUrlAsPdf(url) |
config.PageFormat = PageFormat.A4 |
RenderingOptions.PaperSize = PdfPaperSize.A4 |
config.PageOrientation |
RenderingOptions.PaperOrientation |
config.PageMargins |
RenderingOptions.MarginTop/Bottom/Left/Right |
config.EnableJavaScript = true |
RenderingOptions.EnableJavaScript = true |
config.AddUserStyleSheet(css) |
Intégrer CSS dans HTML |
config.Title |
pdf.MetaData.Title |
config.Encryption |
pdf.SecuritySettings |
Nouvelles fonctionnalités non disponibles dans PDFreactor
| Fonctionnalité d'IronPDF | Description du projet |
|---|---|
PdfDocument.Merge() |
Fusionner plusieurs PDF |
pdf.ApplyWatermark() |
Ajouter des filigranes |
pdf.ExtractAllText() |
Extraction de texte |
pdf.Form |
Remplissage de formulaires |
pdf.Sign() |
Signatures numériques |
Exemples de migration de code
Exemple 1 : Conversion d'une chaîne HTML en fichier PDF
Avant (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);
}
}
Imports RealObjects.PDFreactor
Imports System.IO
Class Program
Shared Sub Main()
Dim pdfReactor As New PDFreactor()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim config As New Configuration()
config.Document = html
Dim result As Result = pdfReactor.Convert(config)
File.WriteAllBytes("output.pdf", result.Document)
End Sub
End Class
Après (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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
La différence fondamentale réside dans le modèle architectural. PDFreactornécessite la création d'une instance PDFreactor (qui se connecte au serveur Java), d'un objet Configuration séparé pour contenir les paramètres et le contenu HTML, l'appel de Convert() qui renvoie un objet Result, et enfin l'écriture des result.Document octets dans un fichier à l'aide de File.WriteAllBytes().
IronPDF simplifie cela en créant un ChromePdfRenderer, en appelant directement RenderHtmlAsPdf() avec la chaîne HTML, et en utilisant la méthode intégrée SaveAs() sur le PdfDocument renvoyé. Pas de connexion au serveur, pas d'objet de configuration, pas de manipulation manuelle d'octets. Consultez la documentation HTML vers PDF pour des exemples complets.
Exemple 2 : Conversion d'une URL en PDF
Avant (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);
}
}
Imports RealObjects.PDFreactor
Imports System.IO
Class Program
Shared Sub Main()
Dim pdfReactor As New PDFreactor()
Dim config As New Configuration()
config.Document = "https://www.example.com"
Dim result As Result = pdfReactor.Convert(config)
File.WriteAllBytes("webpage.pdf", result.Document)
End Sub
End Class
Après (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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
PDFreactor utilise la même propriété config.Document pour les chaînes HTML et les URL, déterminant automatiquement le type.IronPDFfournit des méthodes explicites : RenderHtmlAsPdf() pour les chaînes HTML et RenderUrlAsPdf() pour les URL. Cette approche explicite améliore la clarté du code et la prise en charge IntelliSense. Pour en savoir plus, consultez nos tutoriels.
Exemple 3 : En-têtes et pieds de page avec numéros de page
Avant (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);
}
}
Imports RealObjects.PDFreactor
Imports System.IO
Module Program
Sub Main()
Dim pdfReactor As New PDFreactor()
Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"
Dim config As New Configuration()
config.Document = html
config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }")
Dim result As Result = pdfReactor.Convert(config)
File.WriteAllBytes("document.pdf", result.Document)
End Sub
End Module
Après (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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Header Text"
}
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.CenterText = "Page {page}"
}
Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("document.pdf")
End Sub
End Module
Cet exemple illustre la différence syntaxique la plus importante. PDFreactorutilise la syntaxe CSS Paged Mediaavec les règles @page, les régions @bottom-center et les numéros de page counter(page) injectés via AddUserStyleSheet().
IronPDF utilise une API .NET native avec des objets TextHeaderFooter affectés à RenderingOptions.TextHeader et RenderingOptions.TextFooter. Les numéros de page utilisent l'espace réservé {page} au lieu du CSS counter(page). NotezIronPDFnécessite également l'importation de l'espace de noms IronPdf.Rendering pour les classes d'en-tête/de pied de page.
Notes de migration essentielles
Aucun serveur n'est nécessaire
IronPDF fonctionne en cours de processus - pas de serveur Java à configurer :
// 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();
' PDFreactor: Requires server connection
Dim pdfReactor = New PDFreactor("http://localhost:9423")
' IronPDF: No server URL needed
Dim renderer = New ChromePdfRenderer()
CSS Paged MediaversIronPDFAPI
Remplacez les règles CSS @page par 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}"
};
' PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
' IronPDFequivalent:
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
.CenterText = "Page {page}"
}
Syntaxe de l'espace réservé au numéro de page
// PDFreactorCSS: counter(page)
// IronPDF: {page}
// PDFreactorCSS: counter(pages)
// IronPDF: {total-pages}
// PDFreactorCSS: counter(page)
// IronPDF: {page}
// PDFreactorCSS: counter(pages)
// IronPDF: {total-pages}
' PDFreactorCSS: counter(page)
' IronPDF: {page}
' PDFreactorCSS: counter(pages)
' IronPDF: {total-pages}
Modification du traitement des résultats
Le modèle Configuration + Result devient un PdfDocument direct :
// 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;
' PDFreactor: Configuration → Convert → Result → bytes
Dim result As Result = pdfReactor.Convert(config)
Dim bytes As Byte() = result.Document
File.WriteAllBytes("output.pdf", bytes)
' IronPDF: Direct PdfDocument with built-in methods
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Or: Dim bytes As Byte() = pdf.BinaryData
Modification des unités de marge
PDFreactor utilise des chaînes de caractères ;IronPDFutilise des millimètres :
// 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
' PDFreactor: config.PageMargins.Top = "1in"
' IronPDF: renderer.RenderingOptions.MarginTop = 25.4 ' 1 inch in mm
Nouvelles capacités après la migration
Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que PDFreactorne peut pas vous offrir :
Fusion de fichiers PDF
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");
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Marques de fond
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
Extraction de texte
string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
Dim text As String = pdf.ExtractAllText()
Protection par mot de passe
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
Résumé de la comparaison des fonctionnalités
| Fonction | PDFreactor | IronPDF |
|---|---|---|
| HTML vers PDF | ✓ | ✓ |
| URL vers PDF | ✓ | ✓ |
| En-têtes/Pieds de page | CSS Paged Media | API native |
| Paramètres de la page | ✓ | ✓ |
| Support JavaScript | ✓ | ✓ |
| Natif .NET | ✗ | ✓ |
| En cours | ✗ | ✓ |
| Fusionner des PDF | ✗ | ✓ |
| Diviser les PDF | ✗ | ✓ |
| Filigranes | ✗ | ✓ |
| Extraction de texte | ✗ | ✓ |
| Remplissage de formulaires | ✗ | ✓ |
| Signatures numériques | ✗ | ✓ |
Liste de contrôle de la migration
Pré-migration
- Recenser toutes les utilisations de PDFreactordans le code source
- Documenter toutes les règles CSS Paged Mediautilisées
- Notez tous les paramètres de configuration (marges, taille de la page, JavaScript)
- Planifier le stockage de la clé de licenceIronPDF(variables d'environnement recommandées)
- Commencez par tester avec une licence d'essaiIronPDF.
Modifications du paquet
- Supprimer le package NuGet
PDFreactor.NET - Supprimer le package NuGet
PDFreactor.Native.Windows.x64 - Installez le package NuGet
IronPdf:dotnet add package IronPdf
Modifications du code
- Mise à jour des importations d'espace de noms (
using RealObjects.PDFreactor;→using IronPdf;) - Ajoutez
using IronPdf.Rendering;pour les classes d'en-tête/de pied de page - Remplacez la classe
PDFreactorparChromePdfRenderer - Convertir les objets
Configurationen propriétésRenderingOptions - Remplacez
config.Document = htmlparrenderer.RenderHtmlAsPdf(html) - Remplacez
config.Document = urlparrenderer.RenderUrlAsPdf(url) - Remplacez
File.WriteAllBytes(path, result.Document)parpdf.SaveAs(path) - Convertir les règles CSS
@pageen objetsTextFooter - Mettre à jour les espaces réservés aux numéros de page (
counter(page)→{page}) - Convertir les unités de marge de chaînes de caractères en millimètres
Migration des infrastructures
- Supprimer l'exigence d'exécution Java
- Mise hors service du serveur PDFreactor
- Mettre à jour les configurations Docker/de déploiement
- Mise à jour des pipelines CI/CD
Après la migration
- Testez la qualité de la sortie PDF en fonction des attentes
- Vérifier l'affichage de l'en-tête et du pied de page
- Vérifier l'exécution de JavaScript si elle est utilisée
- Ajouter de nouvelles fonctionnalités (fusion, filigranes, sécurité) selon les besoins

