Comment migrer de PDF Duo vers IronPDF en C#
La migration de PDF Duo .NETversIronPDFfait passer votre flux de travail PDF .NET d'une bibliothèque obscure, mal documentée et dont le statut de maintenance n'est pas clair à une solution stable, bien documentée et activement maintenue. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les risques associés aux bibliothèques abandonnées tout en donnant accès à des fonctionnalités avancées que PDF Duo ne peut pas fournir.
Pourquoi migrer de PDF Duo vers IronPDF
Le problème du risque de double PDF
PDF Duo .NET est une bibliothèque insaisissable et peu connue de l'écosystème .NET. Bien qu'elle ait pu séduire les développeurs en quête de simplicité, l'obscurité de la bibliothèque pose d'importants problèmes pour les applications de production :
-
Provenance incertaine : Développeur inconnu sans soutien d'entreprise vérifiable. Il n'y a pas de dépôt GitHub ou de code source visible, les statistiques de téléchargement de NuGet sont limitées et les conditions de licence sont incertaines.
-
Documentation manquante : Il est quasiment impossible de trouver des informations fiables. Il n'existe pas de référence API officielle, peu d'exemples communautaires, ni de tutoriels ou de guides officiels. Toute tentative d'utilisation de PDF Duo est entravée par la rareté d'une documentation fiable.
-
Statut abandonné ou inactif : des signes de négligence sont évidents avec des mises à jour sporadiques ou inexistantes. Les forums d'assistance affichent des messages datant de 2019 sans réponse. Le risque très réel d'abandon compromet sa viabilité pour des projets importants.
-
Fonctionnalités limitées : Fonctionnalités de base uniquement — simple conversion HTML vers PDF et fusion PDF de base sans fonctionnalités avancées telles que les formulaires, la sécurité ou les filigranes.
-
Moteur de rendu inconnu : aucune transparence sur ce qui se cache sous le capot. La prise en charge de CSS/JavaScript est inconnue, la qualité du rendu est imprévisible et la prise en charge des fonctionnalités web modernes est incertaine.
- Risque lié au support : aucun recours en cas de panne. Il n'y a pas de support professionnel, pas de communauté pour aider, et un risque total d'abandon.
Comparaison PDF Duo vs IronPDF
| Aspect | PDF Duo .NET | IronPDF |
|---|---|---|
| Entretien | Inconnu/Inactif | Mises à jour actives et régulières |
| Documentation | Peu abondante/manquante | Complet |
| Support | Aucun | Équipe d'assistance professionnelle |
| Communauté | ~0 utilisateurs | 41M+ téléchargements NuGet |
| Rendu | Moteur inconnu | Chrome moderne |
| Caractéristiques | Basique | Des fonctionnalités complètes |
| Stabilité | Inconnu | Éprouvé en production |
| Licence d'utilisation | Manque de clarté | Transparent |
Pour les équipes qui prévoient d'adopter .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base stable avec un développement actif et une documentation complète, éliminant ainsi les incertitudes liées au fait de s'appuyer sur une bibliothèque abandonnée.
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 PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo
# Install IronPDF
dotnet add package IronPdf
# Remove PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo
# Install IronPDF
dotnet add package IronPdf
Configuration de la licence
// 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"
Identifier l'utilisation de PDF Duo
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
Référence API complète
Modifications de l'espace de nommage
| PDF Duo .NET | IronPDF |
|---|---|
using PDFDuo; |
using IronPdf; |
using PDFDuo.Document; |
using IronPdf; |
using PDFDuo.Rendering; |
using IronPdf.Rendering; |
using PDFDuo.Settings; |
using IronPdf; |
Mappages de conversion HTML vers PDF
| PDF Duo .NET | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
converter.ConvertHtmlString(html, path) |
renderer.RenderHtmlAsPdf(html).SaveAs(path) |
converter.ConvertUrl(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
converter.ConvertFile(htmlPath, pdfPath) |
renderer.RenderHtmlFileAsPdf(htmlPath).SaveAs(pdfPath) |
Mappages de configuration de page
| PDF Duo .NET | IronPDF |
|---|---|
settings.PageSize = PageSize.A4 |
RenderingOptions.PaperSize = PdfPaperSize.A4 |
settings.PageSize = PageSize.Letter |
RenderingOptions.PaperSize = PdfPaperSize.Letter |
settings.Orientation = Landscape |
RenderingOptions.PaperOrientation = Landscape |
new Margins(top, right, bottom, left) |
Propriétés des marges individuelles |
Margines Mappings
| PDF Duo .NET | IronPDF |
|---|---|
new Margins(top, right, bottom, left) |
Propriétés individuelles |
margins.Top |
RenderingOptions.MarginTop |
margins.Right |
RenderingOptions.MarginRight |
margins.Bottom |
RenderingOptions.MarginBottom |
margins.Left |
RenderingOptions.MarginLeft |
Mise en correspondance des opérations sur les documents
| PDF Duo .NET | IronPDF |
|---|---|
PDFDocument.Load(path) |
PdfDocument.FromFile(path) |
document.Save(path) |
pdf.SaveAs(path) |
document.ToBytes() |
pdf.BinaryData |
new PdfMerger() |
PdfDocument.Merge() |
merger.AddFile(path) |
PdfDocument.FromFile(path) |
merger.Merge(output) |
merged.SaveAs(output) |
Nouvelles fonctionnalités non disponibles dans PDF Duo
| Fonction | IronPDF |
|---|---|
| En-têtes/Pieds de page | RenderingOptions.HtmlHeader, HtmlFooter |
| Nombre de pages | {page}, {total-pages} espaces réservés |
| Filigranes | pdf.ApplyWatermark(html) |
| Protection par mot de passe | pdf.SecuritySettings |
| Remplissage de formulaires | pdf.Form.Fields |
| Signatures numériques | pdf.SignWithFile() |
| Extraction de texte | pdf.ExtractAllText() |
| PDF vers image | pdf.RasterizeToImageFiles() |
Exemples de migration de code
Exemple 1 : Conversion HTML vers PDF
Avant (PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
converter.ConvertHtmlString(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
converter.ConvertHtmlString(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports PDFDuo
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
converter.ConvertHtmlString(htmlContent, "output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Module
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
La différence fondamentale ici est le modèle d'API. PDF Duo's HtmlToPdfConverter.ConvertHtmlString() prend à la fois le HTML et le chemin de sortie dans un seul appel, gérant la conversion et l'enregistrement ensemble.IronPDFrenvoie d'abord un objet ChromePdfRenderer.RenderHtmlAsPdf(), que vous enregistrez ensuite avec SaveAs().
Cette approche orientée objet offre des avantages significatifs : vous pouvez manipuler le PDF (ajouter des filigranes, fusionner des documents, ajouter de la sécurité, extraire du texte) avant de l'enregistrer, ce qui n'est pas possible avec l'approche directe du fichier de PDF Duo. Voir la documentation HTML vers PDF pour des options de rendu supplémentaires.
Exemple 2 : Conversion d'une URL en PDF
Avant (PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.ConvertUrl("https://www.example.com", "webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.ConvertUrl("https://www.example.com", "webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
Imports PDFDuo
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.ConvertUrl("https://www.example.com", "webpage.pdf")
Console.WriteLine("Webpage converted to PDF!")
End Sub
End Module
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");
Console.WriteLine("Webpage converted to 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");
Console.WriteLine("Webpage converted to 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")
Console.WriteLine("Webpage converted to PDF!")
End Sub
End Class
PDF Duo utilise la même classe HtmlToPdfConverter pour la conversion d'URL avec ConvertUrl(url, outputPath).IronPDFutilise ChromePdfRenderer avec la méthode dédiée RenderUrlAsPdf(url), renvoyant un objet PdfDocument.
L'un des principaux avantages est que le moteur de rendu d'IronPDF, basé sur Chromium, offre un support CSS3 et JavaScript moderne, alors que le moteur de rendu inconnu de PDF Duo laisse la prise en charge CSS/JavaScript incertaine et la qualité de rendu imprévisible. En savoir plus sur la conversion d'URL en PDF.
Exemple 3 : fusion de fichiers PDF
Avant (PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var merger = new PdfMerger();
merger.AddFile("document1.pdf");
merger.AddFile("document2.pdf");
merger.Merge("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var merger = new PdfMerger();
merger.AddFile("document1.pdf");
merger.AddFile("document2.pdf");
merger.Merge("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports PDFDuo
Imports System
Class Program
Shared Sub Main()
Dim merger As New PdfMerger()
merger.AddFile("document1.pdf")
merger.AddFile("document2.pdf")
merger.Merge("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Class
Cet exemple montre une différence architecturale fondamentale. PDF Duo utilise une classe dédiée PdfMerger avec une méthode AddFile() pour mettre les fichiers en file d'attente, puis Merge() pour les combiner et les enregistrer en une seule étape.
IronPDF utilise un modèle différent : charger chaque PDF comme un PdfDocument en utilisant PdfDocument.FromFile(), puis utiliser la méthode statique PdfDocument.Merge() pour les combiner. Cela renvoie un nouvel objet PdfDocument que vous enregistrez séparément avec SaveAs().
L'approcheIronPDFoffre plus de flexibilité : vous pouvez manipuler n'importe lequel des PDF avant de les fusionner, ajouter des filigranes au résultat fusionné, appliquer des paramètres de sécurité, etc. Pour fusionner de nombreux fichiers, vous pouvez utiliser LINQ :
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Dim paths = {"document1.pdf", "document2.pdf", "document3.pdf"}
Dim pdfs = paths.Select(AddressOf PdfDocument.FromFile).ToList()
Dim merged = PdfDocument.Merge(pdfs)
merged.SaveAs("merged.pdf")
En savoir plus sur la fusion et la division de PDF.
Nouvelles capacités après la migration
Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que PDF Duo ne peut tout simplement pas vous offrir :
En-têtes et pieds de page avec numéros de page
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
.MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
.MaxHeight = 25
}
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
PDF Duo ne prend pas en charge les en-têtes et les pieds de page - il n'existe pas de fonctionnalité équivalente.IronPDFoffre une prise en charge complète du HTML/CSS avec des espaces réservés intégrés pour le contenu dynamique comme les numéros de page. Voir le guide des en-têtes et pieds de page.
Marques de fond
using IronPdf;
using IronPdf.Editing;
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(
"<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
45,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
using IronPdf.Editing;
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(
"<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
45,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Imports IronPdf.Editing
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>", 45, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("watermarked.pdf")
PDF Duo ne prend pas en charge les filigranes.IronPDFfournit des filigranes basés sur HTML avec une prise en charge complète du style CSS.
Protection par mot de passe
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SaveAs("secured.pdf")
PDF Duo ne prend pas en charge la protection par mot de passe ou les paramètres de sécurité.
Extraction de texte
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()
PDF Duo ne prend pas en charge l'extraction de texte.
Notes de migration essentielles
Les marges de l'objet aux propriétés individuelles
PDF Duo utilise un seul objet Margins ;IronPDFutilise des propriétés individuelles :
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)
// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)
// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
' PDF Duo:
New Margins(top:=20, right:=15, bottom:=20, left:=15)
' IronPDF:
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginRight = 15
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
Enregistrement des noms de méthodes
Différents noms de méthodes pour l'enregistrement :
// PDF Duo:
document.Save("output.pdf");
// IronPDF:
pdf.SaveAs("output.pdf");
// PDF Duo:
document.Save("output.pdf");
// IronPDF:
pdf.SaveAs("output.pdf");
' PDF Duo:
document.Save("output.pdf")
' IronPDF:
pdf.SaveAs("output.pdf")
Charge de PDF
Différents noms de méthodes pour le chargement :
// PDF Duo:
PDFDocument.Load("document.pdf")
// IronPDF:
PdfDocument.FromFile("document.pdf")
// PDF Duo:
PDFDocument.Load("document.pdf")
// IronPDF:
PdfDocument.FromFile("document.pdf")
' PDF Duo:
PDFDocument.Load("document.pdf")
' IronPDF:
PdfDocument.FromFile("document.pdf")
Objet de paramétrage vers propriétés
PDF Duo utilise des objets de paramétrage transmis au constructeur ;IronPDFutilise des propriétés :
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);
// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);
// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDF Duo:
Dim settings As New PDFSettings With {.PageSize = PageSize.A4}
Dim converter As New HtmlToPdfConverter(settings)
' IronPDF:
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Comparaison des fonctionnalités
| Fonction | PDF Duo .NET | IronPDF |
|---|---|---|
| HTML vers PDF | Basique | CSS3 complet, JavaScript |
| URL vers PDF | Basique | Complet avec prise en charge de l'authentification |
| Fusion de PDF | Oui | Oui |
| En-têtes/Pieds de page | Non | Prise en charge complète du HTML |
| Numéros de page | Non | Caractères génériques intégrés |
| Filigranes | Non | Basé sur HTML |
| Protection par mot de passe | Non | Options de sécurité complètes |
| Remplissage de formulaires | Non | Oui |
| Signatures numériques | Non | Oui |
| Extraction de texte | Non | Oui |
| PDF vers images | Non | Oui |
| Prise en charge de l'asynchronisme | Inconnu | Async/await complet |
| .NET Core/5+ | Inconnu | Prise en charge |
Liste de contrôle de la migration
Pré-migration
- Trouvez toutes les références à PDF Duo dans le code source
- Paramètres actuels du document (format de page, marges, etc.)
- Lister toutes les opérations PDF utilisées
- Identifier les opportunités pour de nouvelles fonctionnalités (en-têtes, filigranes, sécurité)
- Obtenir une clé de licence IronPDF
Modifications du paquet
- Supprimer le package NuGet
PDFDuo.NET - Installez le package NuGet
IronPdf:dotnet add package IronPdf - Mettre à jour les importations d'espace de noms de
using PDFDuo;àusing IronPdf;
Modifications du code
- Ajouter la configuration de la clé de licence au démarrage
- Remplacez
HtmlToPdfConverterparChromePdfRenderer - Remplacez
ConvertHtmlString(html, path)parRenderHtmlAsPdf(html).SaveAs(path) - Remplacez
ConvertUrl(url, path)parRenderUrlAsPdf(url).SaveAs(path) - Remplacez le modèle
PdfMergerpar le modèlePdfDocument.Merge() - Convertir l'objet
Marginsen propriétés de marge individuelles - Remplacez
Save()parSaveAs() - Remplacez
Load()parFromFile()
Après la migration
- Effectuer des tests de régression comparant les résultats PDF
- Vérifiez que les dimensions et les marges des pages correspondent.
- Test avec du HTML/CSS complexe (le moteur moderne d'IronPDF devrait mieux le gérer)
- Ajouter de nouvelles fonctionnalités (en-têtes, pieds de page, filigranes, sécurité)
- Mise à jour de la documentation

