Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer d'ExpertPdf à IronPDF en C#

Migrer d'ExpertPdf à IronPdf : Guide complet de migration vers C

ExpertPdf est un convertisseur HTML-PDF commercial pour .NET qui sert les développeurs depuis de nombreuses années. Cependant, ExpertPdfest confronté à des défis importants dans le paysage actuel du développement en évolution rapide : documentation gelée depuis 2018, dépendance à une version Chrome héritée qui manque de fonctionnalités CSS3 modernes, prix premium allant de 550 à 1200 dollars pour une technologie dépassée, et une suite de produits fragmentée nécessitant des licences distinctes pour la fusion, la sécurité et le fractionnement. Ce guide complet fournit un chemin de migration étape par étape d'ExpertPdf versIronPDF- une bibliothèque PDF .NET moderne avec le dernier rendu Chromium, des mises à jour mensuelles et une architecture de package tout-en-un.

Pourquoi migrer d'ExpertPdf à IronPDF?

ExpertPdf présente plusieurs défis qui poussent les équipes de développement à évaluer des alternatives modernes. Il est essentiel de comprendre ces questions pour planifier votre stratégie de migration.

Les problèmes d'ExpertPdf

  1. Documentation figée depuis 2018 : La documentation d'ExpertPdf n'a pas été mise à jour depuis plus de 6 ans. Il est de plus en plus difficile de trouver des informations, des exemples et des meilleures pratiques à mesure que l'écosystème .NET évolue.

  2. Version Chrome obsolète : ExpertPdfs'appuie sur une version ancienne de Chrome pour le rendu. Les fonctionnalités CSS3 modernes (Flexbox, Grid, CSS Variables) peuvent ne pas s'afficher correctement et les correctifs de sécurité ne sont pas appliqués.

  3. Tarification premium pour Legacy Tech : À 550 $ - 1 200 $ par licence, ExpertPdffacture des prix élevés tout en offrant une technologie de rendu dépassée.

  4. Suite de produits fragmentée : ExpertPdfvend des packages séparés pour différentes fonctions - HTMLToPdf Converter, PDF Merger, PDF Security, PDF Splitter, et PDF to Image - chacun nécessitant une licence séparée.

  5. <Prise en charge limitée de Modern .NET : Bien qu'ExpertPdf dispose de packages .NET Core, ils sont en retard par rapport aux versions et pratiques .NET modernes.

Comparaison des architectures

Aspect ExpertPdf IronPDF
Documentation Gelé depuis 2018 Mise à jour continue
Moteur de rendu Chrome hérité Dernière version de Chromium
Support CSS CSS3 limité CSS3 complet (Flexbox, Grid)
Prix $550-$1,200 Prix compétitifs
Fréquence des mises à jour Peu fréquents Communiqués mensuels
Modèle de produit Fragmenté (5+ DLL) Bibliothèque tout-en-un
Moderne .NET Limité .NET 6/7/8/9+ natif
Support asynchrone Limité Async/await complet

Avantages principaux de la migration

  1. Rendu moderne : Dernier moteur Chromium pour un rendu au pixel près
  2. Tout-en-un : Génération de PDF, fusion, sécurité, extraction en un seul NuGet
  3. Développement actif : Mises à jour mensuelles avec de nouvelles fonctionnalités et des correctifs de sécurité
  4. Meilleure documentation : Tutoriels et exemples complets
  5. <Véritablement multiplateforme : Windows, Linux, macOS, prise en charge de Docker

Préparation de la migration

Prérequis

Assurez-vous que votre environnement répond à ces exigences :

  • .NET Framework 4.6.2+ ou .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ ou VS Code avec l'extension C#
  • Accès au gestionnaire de paquets NuGet
  • Clé de licenceIronPDF(essai gratuit disponible sur ironpdf.com)

Audit ExpertUtilisation du pdf

Exécutez ces commandes dans votre répertoire de solutions pour identifier toutes les références à ExpertPdf:

# Find all ExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find all ExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
SHELL

Paquets ExpertPdfcourants à rechercher :

  • ExpertPdf.HtmlToPdf - Conversion de HTML en PDF
  • ExpertPdf.PDFMerge - Fusion de fichiers PDF
  • ExpertPdf.PDFSecurity - Chiffrement et mots de passe
  • ExpertPdf.PDFSplit - Fractionnement de PDF
  • ExpertPdf.PdfToImage - Conversion de PDF en images

Comprendre le changement de modèle de base

ExpertPdf utilise PdfConverteravec des méthodes de retour directes par tableau d'octets.IronPDFutilise des objets ChromePdfRendererrenvoyant des objets PdfDocument qui fournissent des capacités de manipulation supplémentaires avant l'enregistrement.

Processus de migration étape par étape

Étape 1 : Mise à jour des paquets NuGet

Supprimez tous les paquets ExpertPdfet installez IronPdf :

# Remove all ExpertPdfpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove all ExpertPdfpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(includes all features)
dotnet add package IronPdf
SHELL

Étape 2 : Mise à jour des références aux espaces de noms

Remplacer les espaces de noms ExpertPdfparIronPDF:

// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Étape 3 : configuration de la licence

ExpertPdf utilise une licence par convertisseur.IronPDFutilise une licence globale unique :

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Référence complète de migration des API

Mappage des classes de base

Classe ExpertPdf Équivalent d'IronPDF Notes
PdfConverter ChromePdfRenderer Principale classe de conversion
PdfDocumentOptions ChromePdfRenderOptions Via RenderingOptions
PdfHeaderOptions TextHeaderFooter ou HtmlHeaderFooter Configurable
PdfFooterOptions TextHeaderFooter ou HtmlHeaderFooter Configurable
PDFMerge PdfDocument.Merge() Méthode statique

Mise en correspondance des méthodes

Méthode ExpertPdf Méthode IronPDF Notes
pdfConverter.GetPdfBytesFromHtmlString(html) renderer.RenderHtmlAsPdf(html).BinaryData
pdfConverter.GetPdfBytesFromUrl(url) renderer.RenderUrlAsPdf(url).BinaryData
pdfConverter.GetPdfBytesFromHtmlFile(path) renderer.RenderHtmlFileAsPdf(path).BinaryData
pdfConverter.SavePdfFromUrlToFile(url, path) renderer.RenderUrlAsPdf(url).SaveAs(path) Deux étapes

Cartographie des options

Option ExpertPdf Options de rendu IronPDF Notes
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 PaperSize = PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation = Portrait PaperOrientation = PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTop MarginTop Même nom de propriété
PdfHeaderOptions.HeaderText TextHeader.CenterText
PdfFooterOptions.FooterText TextFooter.RightText

Conversion des jetons de numérotation de page

ExpertPdf etIronPDFutilisent une syntaxe différente pour les numéros de page :

ExpertPdf IronPDF
&p; {page}
&P; {total-pages}

Exemples de migration de code

Conversion HTML en PDF

La conversion fondamentale de HTML en PDF démontre le passage du modèle de tableau d'octets d'ExpertPdf à l'approche document-objet d'IronPDF.

Mise en œuvre d'ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mise en œuvre d'IronPDF:

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

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

        // Save to file
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        // Save to file
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'approche d'IronPDF renvoie un objet PdfDocument, permettant des manipulations supplémentaires (fusion, filigrane, sécurité) avant l'enregistrement. Pour plus d'options, consultez la documentation HTML vers PDF.

URL vers PDF avec paramètres de page

Mise en œuvre d'ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Le RenderingOptions d'IronPDF fournit un accès direct aux propriétés pour la configuration des pages. Pour plus d'options, consultez l'URL vers la documentation PDF.

En-têtes et pieds de page avec numéros de page

Cet exemple démontre la différence critique dans la configuration de l'en-tête/pied de page-ExpertPdf utilise des classes PdfHeaderOptionset PdfFooterOptionsdistinctes avec des jetons &p;/&P;, tandis qu'IronPDF utilise TextHeaderFooter avec des caractères génériques {page}/{total-pages}.

Mise en œuvre d'ExpertPdf:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Le TextHeaderFooter d'IronPDF fournit les propriétés LeftText, CenterText et RightText avec des lignes de séparation facultatives. Pour les en-têtes HTML, utilisez HtmlHeaderFooter. Pour plus d'options, consultez la documentation sur les en-têtes et les pieds de page.

Notesde migration essentielles

Lieu de la clé de licence

ExpertPdf utilise une licence par convertisseur.IronPDFutilise une licence globale unique définie une fois au démarrage :

// ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
// ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Conversion des jetons de numérotation de page

Remplacez les jetons ExpertPdfpar des caractères de remplacementIronPDF:

// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fragmentation des paquets consolidés

Les packages distincts d'ExpertPdf (PDFMerge, PDFSecurity, PDFSplit, PdfToImage) sont tous inclus dans le package unique d'IronPDF :

// ExpertPdf- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");

//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// ExpertPdf- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");

//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Pour plus d'options de fusion, consultez la documentation de fusion PDF.

Tailles de page personnalisées

ExpertPdf utilise des points.IronPDFutilise des millimètres. Convertir : points / 72 * 25,4 = mm

Liste de contrôle post-migration

Après avoir effectué la migration du code, vérifiez les points suivants :

  • [Comparaison visuelle des PDF générés
  • [Vérifier les en-têtes/pieds de page et les numéros de page
  • [Tester les paramètres de sécurité/chiffrement
  • [Valider les opérations de fusion
  • [Vérifier la taille des pages personnalisées
  • [ ] Analyse comparative des performances
  • [Tests multiplateformes
  • [Supprimer les fichiers de licence d'ExpertPdf
  • [Mise à jour de la documentation

Protéger l'avenir de votre infrastructure PDF

Avec .NET 10 à l'horizon et C# 14 introduisant de nouvelles fonctionnalités de langage, le choix d'une bibliothèque PDF au développement actif et au rendu moderne garantit une compatibilité à long terme. Les mises à jour mensuelles d'IronPDF et le dernier moteur Chrome fournissent les bases d'une génération de PDF qui continuera à fonctionner correctement avec les mises en page CSS3 modernes (Flexbox, Grid) alors que les projets s'étendent jusqu'en 2025 et 2026 - contrairement à la version Chrome héritée d'ExpertPdf figée dans le temps.

Ressources supplémentaires


La migration d'ExpertPdf versIronPDFélimine les défis liés à la documentation figée, au rendu Chrome hérité, à la fragmentation des licences de produits et à la prise en charge limitée de .NET moderne. Le passage à une bibliothèque activement maintenue avec le dernier moteur Chromium garantit que votre génération de PDF suit le rythme de l'évolution des normes web et des frameworks .NET.

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