Comment convertir Markdown en PDF
ExpertPdf est un convertisseur commercial HTML-to-PDF for .NET publié parOutside Software Inc.La dernière version sur nuget.org est v20.1.0 (avril 2025), donc la suite est encore activement expédiée — le frottement réside dans la forme du produit, pas dans son abandon. ExpertPdfrepose sur un moteur Trident (IE) plus un moteur "WebKit2" ajouté en v12.2 ; le Chromium moderne n'est pas le défaut. Les listings publics de ComponentSource ont historiquement montré le HtmlToPdf Converter à environ 550–1 200 $ par niveau (vérifiez directement avec le fournisseur). Le toolkit est également réparti sur des packages NuGet séparés — HtmlToPdf, MergePdf, PdfSecurity, SplitPdf, PdfToImage, PdfCreator — chacun généralement licencié séparément. Ce guide fournit un chemin de migration étape par étape d'ExpertPdf vers IronPDF, une bibliothèque PDF .NET avec le dernier rendu Chromium, des sorties fréquentes, et un 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
-
Documentation clairsemée, rythme lent : Des documents de référence existent sur html-to-pdf.net, mais les tutoriels, les articles de fonctionnalités, et les entrées de journal des modifications sont rares. Les notes de version pour v20.1 (avril 2025) listent des "corrections de bugs et des améliorations de performance" — pas de fonctionnalités emblématiques.
-
Anciennes pipelines de rendu : ExpertPdfexpédie un moteur Trident (IE) plus un moteur "WebKit2" ajouté en v12.2 ; le Chromium moderne n'est pas le défaut. les fonctionnalités CSS3 telles que Flexbox, Grid, et les variables CSS se rendent mieux sur le moteur WebKit2 — vérifiez par rapport à votre HTML cible avant de migrer de grands états.
-
Tarification premium pour une pile vieillissante : Les listings publics de ComponentSource ont historiquement montré le HtmlToPdf Converter à environ 550–1 200 $ par niveau (vérifiez directement avec le fournisseur — la page de commande sur expertpdf.net était inaccessible au moment de la rédaction).
-
Suite de produits fragmentée : ExpertPdfvend des packages séparés —
ExpertPdf.HtmlToPdf.NetCore/ExpertPdfHtmlToPdf,ExpertPdf.MergePdf,ExpertPdf.PdfSecurity,ExpertPdf.SplitPdf,ExpertPdf.PdfToImage,ExpertPdf.PdfCreator— chacun étant généralement licencié séparément. - Pas de cibles .NET modernes natives : Les packages
.NetCoreciblent .NET Standard 2.0 / .NET Framework 4.6.1, donc ils s'exécutent sur .NET 5/6/7/8/9 — mais vous n'obtenez pas de builds multi-cibles natifs, d'assemblages adaptés au trimming, ou d'APIs orientées async.
Comparaison des architectures
| Aspect | ExpertPdf | IronPDF |
|---|---|---|
| Fournisseur | Outside Software Inc. | Iron Software |
| Dernière version (nuget.org) | v20.1.0 (avr 2025) | Mise à jour continue |
| Documentation | Docs de référence uniquement, tutoriels clairsemés | Mise à jour continue |
| Moteur de rendu | Trident (IE) + "WebKit2" (ajouté v12.2) | Dernière version de Chromium |
| Support CSS | CSS3 meilleur sur WebKit2 ; partiel sur héritage | CSS3 complet (Flexbox, Grid) |
| Prix | ≈550-1 200 $ (vérifiez auprès du fournisseur) | Voir ironpdf.com/pricing |
| Modèle de produit | Fragmenté (6+ packages NuGet) | Bibliothèque tout-en-un |
| Moderne .NET | .NET Standard 2.0 (fonctionne sur .NET 5-9) | .NET 6/7/8/9+ multi-ciblé |
| Support asynchrone | Limité | Async/await complet |
Avantages principaux de la migration
- Rendu moderne : Moteur Chromium de dernière génération pour un rendu impeccable au pixel près.
- Package tout-en-un : génération, fusion, sécurité et extraction de PDF dans un seul NuGet
- Développement actif : Mises à jour mensuelles avec de nouvelles fonctionnalités et des correctifs de sécurité
- Meilleure documentation : tutoriels et exemples complets
- Véritable compatibilité multiplateforme : prise en charge de Windows, Linux, macOS et 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 Package Manager NuGet
- Clé de licence IronPDF(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"
Packages ExpertPdfcommuns à rechercher (vérifiez le nom exact sur nuget.org — la suite utilise une casse incohérente) :
ExpertPdfHtmlToPdf(.NET Framework) /ExpertPdf.HtmlToPdf.NetCore(.NET Core / 5-9) — HTML to PDFExpertPdf.MergePdf— fusion de PDFExpertPdf.PdfSecurity— cryptage et mots de passeExpertPdf.SplitPdf— division de PDFExpertPdf.PdfToImage— conversion de PDF en imageExpertPdf.PdfCreator— SDK PDF complet (dessin, formulaires, signatures)
Comprendre le changement de modèle de base
ExpertPdf utilise PdfConverter avec des méthodes de retour direct de tableau d'octets.IronPDF utilise ChromePdfRenderer retournant des objets PdfDocument qui offrent des capacités supplémentaires de manipulation 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 (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator
# Install IronPDF(includes all features)
dotnet add package IronPdf
# Remove all ExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator
# Install IronPDF(includes all features)
dotnet add package IronPdf
Étape 2 : Mise à jour des références aux espaces de noms
Remplacer les espaces de noms ExpertPdfpar IronPDF:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
Étape 3 : configuration de la licence
ExpertPdf utilise une licence par convertisseur.IronPDF utilise 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";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Référence complète de migration des API
Mappage des classes de base
| Classe ExpertPdf | Équivalent d'IronPDF |
|---|---|
PdfConverter |
ChromePdfRenderer |
PdfDocumentOptions |
ChromePdfRenderOptions |
PdfHeaderOptions |
TextHeaderFooter ou HtmlHeaderFooter |
PdfFooterOptions |
TextHeaderFooter ou HtmlHeaderFooter |
PDFMerge |
PdfDocument.Merge() |
Mise en correspondance des méthodes
| Méthode ExpertPdf | Méthode IronPDF |
|---|---|
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) |
Cartographie des options
| Option ExpertPdf | Options de rendu IronPDF |
|---|---|
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 |
PaperSize = PdfPaperSize.A4 |
PdfDocumentOptions.PdfPageOrientation = Portrait |
PaperOrientation = PdfPaperOrientation.Portrait |
PdfDocumentOptions.MarginTop |
MarginTop |
PdfHeaderOptions.HeaderText |
TextHeader.CenterText |
PdfFooterOptions.FooterText |
TextFooter.RightText |
Conversion des jetons de numérotation de page
ExpertPdf et IronPDF utilisent 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!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Convert HTML string to PDF
Dim pdfBytes As Byte() = 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!")
End Sub
End Module
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!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer = New ChromePdfRenderer()
Dim 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!")
End Sub
End Class
L'approche de IronPDF retourne un objet PdfDocument, permettant une manipulation supplémentaire (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!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait
' Convert URL to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")
' Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Module
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!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
' Save to file
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
Le RenderingOptions de IronPDF offre 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 des en-têtes/pieds de page—ExpertPdf utilise des classes PdfHeaderOptions et PdfFooterOptions séparées avec des tokens &P;, tandis que IronPDF utilise TextHeaderFooter avec des espaces réservés {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!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
' Create the PDF converter
Dim pdfConverter As 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
Dim pdfBytes As Byte() = 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!")
End Sub
End Class
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!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Configure header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Document Header",
.DrawDividerLine = True
}
' Configure footer with page numbers
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True
}
' Convert HTML file to PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
' Save to file
pdf.SaveAs("output-with-header-footer.pdf")
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
Le TextHeaderFooter de IronPDF fournit des propriétés LeftText, CenterText, et RightText avec des lignes diviseurs optionnelles. Pour des en-têtes basés sur HTML, utilisez HtmlHeaderFooter. Pour plus d'options, consultez la documentation sur les en-têtes et les pieds de page.
Notes de migration essentielles
Lieu de la clé de licence
ExpertPdf utilise une licence par convertisseur.IronPDF utilise 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 = "YOUR-LICENSE-KEY";
// ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"
' IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Conversion des jetons de numérotation de page
Remplacez les jetons ExpertPdfpar des caractères de remplacement IronPDF:
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
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 ExpertPdf.MergePdf package
PDFMerge 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 ExpertPdf.MergePdf package
PDFMerge 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 ExpertPdf.MergePdf package
Dim merger As New PDFMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")
' IronPDF- included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Pour plus d'options de fusion, consultez la documentation de fusion PDF.
Tailles de page personnalisées
ExpertPdf utilise des points.IronPDF utilise 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 les formats de page personnalisés
- Évaluation comparative des performances
- Tests multiplateformes
- Supprimer les fichiers de licence ExpertPdf
- Mise à jour de la documentation
Ressources supplémentaires
La migration d'ExpertPdf vers IronPDF remplace la documentation éparse, les pipelines de rendu hérités, et le licensing de produit fragmenté par une bibliothèque activement maintenue sur le dernier moteur Chromium — gardant votre génération de PDF alignée avec les normes web actuelles et les cibles modernes .NET.

