Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de PDFreactor à IronPDF en C#

Migrer de PDFreactoràIronPDF: Guide complet de migration 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 :

  1. Java Runtime Required : Requiert l'installation de JRE/JDK sur tous les serveurs.

  2. <Architecture du 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.

  3. Déploiement complexe : La gestion des dépendances Java dans un écosystème essentiellement .NET peut compliquer l'installation et augmenter les coûts de maintenance. Deux runtimes (Java + .NET) à gérer dans les pipelines CI/CD.

  4. Communication inter-processus : L'API REST ou la communication par socket ajoute de la latence. Chaque conversion PDF nécessite un aller-retour HTTP vers le serveur.

  5. Gestion séparée des licences : La licence est liée à l'instance du serveur et non à l'application. Licence par serveur liée à l'instance de service Java.

  6. Isolation des ressources : gestion séparée de la mémoire des processus et de l'unité centrale. 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

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

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
SHELL

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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" .
SHELL

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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages de classes de base

PDFreactor IronPDF Notes
PDFreactor ChromePdfRenderer Principale classe de conversion
Configuration ChromePdfRenderOptions Paramètres PDF
Résultat Document PDF Document de sortie
config.Document = html renderer.RenderHtmlAsPdf(html) Entrée HTML
result.Document (byte[]) pdf.BinaryData Octets bruts

Mappages de propriétés de configuration

Configuration de PDFreactor Options de rendu IronPDF Notes
config.Document = html renderer.RenderHtmlAsPdf(html) Contenu HTML
config.Document = url renderer.RenderUrlAsPdf(url) Conversion d'URL
config.PageFormat = PageFormat.A4 RenderingOptions.PaperSize = PdfPaperSize.A4 Taille du papier
config.PageOrientation RenderingOptions.PaperOrientation Orientation
config.PageMargins RenderingOptions.MarginTop/Bottom/Left/Right Marges (mm)
config.EnableJavaScript = true RenderingOptions.EnableJavaScript = true Exécution JS
config.AddUserStyleSheet(css) Intégrer CSS dans HTML Injection CSS
config.Title pdf.MetaData.Title Métadonnées
config.Encryption pdf.SecuritySettings Sécurité

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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 Configurationséparé pour contenir les paramètres et le contenu HTML, l'appel à Convert() qui renvoie un objet Result, et enfin l'écriture des octets result.Document dans un fichier en utilisant File.WriteAllBytes().

IronPDF simplifie cela en créant un ChromePdfRenderer, en appelant RenderHtmlAsPdf() directement avec la chaîne HTML, et en utilisant la méthode intégrée SaveAs() sur le Document PDFretourné. 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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFreactor utilise la même propriété config.Document pour les chaînes HTML et les URL, en 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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple illustre la différence syntaxique la plus importante. PDFreactorutilise la syntaxe CSS Paged Mediaavec les règles @page, les régions @top-center/@bottom-center et counter(page) pour les numéros de page injectés via AddUserStyleSheet().

IronPDF utilise une API .NET native avec des objets TextHeaderFooter attribués à RenderingOptions.TextHeader et RenderingOptions.TextFooter. Les numéros de page utilisent le caractère générique {page} au lieu du CSS counter(page). Notez qu'IronPDF nécessite également l'importation de l'espace de noms IronPdf.Rendering pour les classes d'en-tête/pied de page.


Notesde 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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

CSS Paged MediaversIronPDFAPI

Remplacer 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}" 
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Marques de fond

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

Extraction de texte

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

Protection par mot de passe

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

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

  • [Inventaire de toutes les utilisations de PDFreactordans la base de code
  • [Documenter toutes les règles CSS Paged Mediautilisées
  • [La traduction doit rester professionnelle, en préservant la précision technique tout en expliquant les caractéristiques et les avantages de ces outils de développement
  • [Planifier le stockage des clés de licenceIronPDF(variables d'environnement recommandées)
  • [Testez d'abord avec la licence d'essai d'IronPDF

Modifications du paquet

  • [Supprimer le paquet PDFreactor.NET NuGet
  • [Supprimer le package NuGet PDFreactor.Native.Windows.x64
  • [Installer le package NuGet IronPdf : dotnet add package IronPdf

Modifications du code

  • [Mise à jour des importations d'espaces de noms (utilisant RealObjects.PDFreactor;utilisant IronPdf;)
  • [Ajouter utilisant IronPdf.Rendering; pour les classes d'en-tête/pied de page
  • [Remplacer la classe PDFreactorpar ChromePdfRenderer
  • [Convertissez les objets Configurationen propriétés RenderingOptions
  • [Remplacer config.Document = htmlpar renderer.RenderHtmlAsPdf(html)
  • [Remplacer config.Document = urlpar renderer.RenderUrlAsPdf(url)
  • [Remplacer File.WriteAllBytes(path, result.Document) par pdf.SaveAs(path)
  • [Convertir les règles CSS @page en objets TextHeader/TextFooter
  • [Mise à jour des caractères de remplacement du numéro de page (counter(page){page})
  • [ ] Convertir les unités de marge des chaînes de caractères en millimètres

Migration des infrastructures

  • [Supprimer l'exigence d'exécution de Java
  • [Décommissionner le serveur PDFreactor
  • [Mise à jour des configurations Docker/déploiement
  • [Mise à jour des pipelines CI/CD

Post-Migration

  • [Tester la qualité de la sortie PDF en fonction des attentes
  • [Vérifier le rendu de l'en-tête et du pied de page
  • [Vérifier l'exécution de JavaScript s'il est utilisé
  • [Ajouter de nouvelles fonctionnalités (fusion, filigrane, sécurité) selon les besoins

Conclusion

La migration de PDFreactorversIronPDFpermet d'éliminer les dépendances Java et l'infrastructure serveur tout en offrant des fonctionnalités HTML-to-PDF équivalentes. Le choix de l'outil approprié entre PDFreactoretIronPDFdépend en grande partie des exigences spécifiques du projet et de l'infrastructure existante. Si votre projet exige un rendu haute fidélité avec une prise en charge étendue des feuilles de style CSS et peut gérer les dépendances Java, PDFreactorest un candidat de choix. À l'inverse, si vous développez dans un environnement .NET et que vous souhaitez une intégration transparente et des fonctionnalités PDF étendues,IronPDFest un choix plus approprié.

Les principaux changements apportés à cette migration sont les suivants :

  1. <Architecture : service Java basé sur un serveur → bibliothèque .NET en cours de traitement
  2. Classe principale : PDFreactorChromePdfRenderer
  3. Configuration : objet Configuration→ propriétés RenderingOptions
  4. Conversion HTML : config.Document + Convert()RenderHtmlAsPdf()
  5. Conversion d'URL : config.Document + Convert()RenderUrlAsPdf()
  6. Sortie : result.Document + File.WriteAllBytes()pdf.SaveAs()
  7. En-têtes/Pieds de page : Règles CSS @page → Objets TextHeaderFooter
  8. Nombre de pages : counter(page){page}
  9. Nouvelles fonctionnalités : Fusion de PDF, filigranes, extraction de texte, signatures numériques, etc

Les principaux avantages sont les suivants : architecture simplifiée ne nécessitant pas de processus serveur séparé, intégration native de .NET avec des appels d'API directs au lieu de REST/IPC, complexité réduite avec un seul package NuGet au lieu d'un runtime Java et d'un serveur, et prise en charge complète du cycle de vie des PDF au-delà de la conversion, y compris la fusion, le fractionnement, l'édition et la signature.

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers PDFreactor.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite