Comment migrer de PeachPDF à IronPDF en C#
Migrer de PeachPDFversIronPDFpermet d'accéder à une génération de PDF de niveau entreprise avec des fonctionnalités complètes, un développement actif et un support professionnel. Ce guide fournit un chemin de migration complet, étape par étape, qui transforme votre flux de travail HTML-PDF de base en une solution PDF complète avec un rendu Chromium moderne, des options de sécurité avancées et des capacités de manipulation étendues.
Pourquoi migrer de PeachPDFà IronPDF
Comprendre PeachPDF
PeachPDF est un outil relativement nouveau dans l'écosystème .NET, conçu pour les développeurs qui ont besoin de convertir du HTML en PDF. En tant que bibliothèque, PeachPDFpromet une implémentation .NET pure, se distinguant par le fait qu'elle ne dépend pas de processus externes, ce qui garantit qu'elle peut être intégrée de manière transparente sur toutes les plateformes où .NET est pris en charge. Cette caractéristique positionne PeachPDFcomme un choix attrayant pour les projets à la recherche d'une solution de bibliothèque gérée et légère.
Malgré son potentiel, PeachPDFest encore en cours de développement, ce qui met en évidence à la fois des possibilités intéressantes et des limites notables. PeachPDFreste attrayant en raison de son noyau .NET pur, qui promet un déploiement simple dans divers environnements. Toutefois, cela se traduit également par une adoption limitée, avec une base d'utilisateurs plus restreinte et un soutien communautaire.
Les limites de PeachPDF
PeachPDF est une bibliothèque PDF relativement nouvelle et peu connue qui n'a pas la maturité, les fonctionnalités et le support des solutions établies. Principales raisons de migrer :
-
Fonctionnalités limitées : PeachPDFne dispose pas de fonctionnalités avancées telles que les signatures numériques, la conformité PDF/Aet l'extraction de texte sophistiquée.
-
Petite communauté : documentation, exemples et soutien communautaire limités. Avec une base d'utilisateurs réduite, le soutien de la communauté peut être rare, ce qui rend difficile l'obtention d'une assistance ou la recherche d'une documentation complète.
-
Un avenir incertain : Les nouvelles bibliothèques sans antécédents établis comportent un risque d'adoption.
-
Prise en charge HTML de base : capacités de rendu CSS et JavaScriptlimitées.
- Aucun support aux Enterprise : aucune option de support Professional ni de SLA.
Comparaison PeachPDFvs IronPDF
| Fonctionnalité/Caractéristique | PeachPDF | IronPDF |
|---|---|---|
| Mise en œuvre | Pure .NET | Géré avec une large compatibilité |
| Licence | Open Source (BSD-3-Clause) | Commercial |
| Base d'utilisateurs | Petit | Important (plus de 40 millions de téléchargements) |
| Support | Orienté vers la communauté | Professionnel avec un support dédié |
| Rendu HTML | Basique | Chromium complet |
| Support CSS | Limité | CSS3 complet |
| JavaScript | Basique | ES2024 complet |
| Signatures numériques | Non | Oui |
| Conformité PDF/A | Non | Oui |
| Documentation | Limité | Complète |
| Statut de développement | En développement | Version mature et stable |
IronPDF se distingue par des fonctionnalités plus larges, prenant en charge non seulement les conversions HTML vers PDF, mais aussi l'OCR, le filigrane et d'autres fonctions avancées. Sa structure d'assistance professionnelle est un avantage certain, offrant des résolutions rapides aux problèmes rencontrés par les développeurs.
Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFoffre des fonctionnalités complètes et une maintenance active qui garantissent une stabilité et une compatibilité à long terme avec les frameworks .NET modernes.
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 PeachPDF
dotnet remove package PeachPDF
# Install IronPDF
dotnet add package IronPdf
# Remove PeachPDF
dotnet remove package PeachPDF
# Install IronPDF
dotnet add package IronPdf
Configuration de la licence
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Identifier l'utilisation de PeachPDF
# Audit PeachPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .
# Audit PeachPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .
Référence API complète
Modifications de l'espace de nommage
// Before: PeachPDF
using PeachPDF;
using System.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PeachPDF
using PeachPDF;
using System.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
Mappages de l'API de base
| PeachPDF | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
converter.Convert(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
converter.Header |
renderer.RenderingOptions.HtmlHeader |
converter.Footer |
renderer.RenderingOptions.HtmlFooter |
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(path) |
pdf (octet[]) |
pdf.BinaryData |
PdfReader.LoadFromFile(path) |
PdfDocument.FromFile(path) |
document.MergeWith(other) |
PdfDocument.Merge(pdfs) |
Exemples de migration de code
Exemple 1 : Conversion d'une chaîne HTML en fichier PDF
Avant (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var 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();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Cet exemple illustre la différence fondamentale entre les deux bibliothèques. PeachPDFutilise HtmlToPdfConverter avec une méthode Convert() qui renvoie un byte[], nécessitant File.WriteAllBytes() pour l'enregistrement.IronPDFutilise ChromePdfRenderer avec RenderHtmlAsPdf() qui renvoie un objet PdfDocument avec une méthode intégrée SaveAs().
Les principaux avantages de l'approche d'IronPDF : l'objet PdfDocument peut être manipulé davantage (ajout de filigranes, fusion, paramètres de sécurité) avant l'enregistrement, tandis que le tableau d'octets de PeachPDFest une sortie finale. L'approche d'IronPDF offre une syntaxe plus propre et une meilleure intégration avec les applications .NET modernes. Consultez la documentation HTML vers PDF pour des exemples complets.
Exemple 2 : Conversion d'une URL en PDF
Avant (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
var pdf = converter.ConvertUrl(url);
File.WriteAllBytes("webpage.pdf", pdf);
}
}
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
var pdf = converter.ConvertUrl(url);
File.WriteAllBytes("webpage.pdf", pdf);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim url = "https://www.example.com"
Dim pdf = converter.ConvertUrl(url)
File.WriteAllBytes("webpage.pdf", pdf)
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim url = "https://www.example.com"
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
End Sub
End Class
PeachPDF utilise ConvertUrl() tandisIronPDFutilise RenderUrlAsPdf(). Le nommage des méthodes dansIronPDFest plus descriptif : il indique explicitement qu'une URL est rendue sous forme de PDF. Les deux bibliothèques gèrent la conversion d'URL en PDF de manière similaire, mais le moteur Chromium complet d'IronPDF offre un rendu supérieur des pages web modernes avec CSS et JavaScriptcomplexes. Pour en savoir plus, consultez nos tutoriels.
Exemple 3 : Ajout d'en-têtes et de pieds de page
Avant (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.Header = "<div style='text-align:center'>My Header</div>";
converter.Footer = "<div style='text-align:center'>Page {page}</div>";
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("document.pdf", pdf);
}
}
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.Header = "<div style='text-align:center'>My Header</div>";
converter.Footer = "<div style='text-align:center'>Page {page}</div>";
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("document.pdf", pdf);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
converter.Header = "<div style='text-align:center'>My Header</div>"
converter.Footer = "<div style='text-align:center'>Page {page}</div>"
Dim html = "<html><body><h1>Document Content</h1></body></html>"
Dim pdf = converter.Convert(html)
File.WriteAllBytes("document.pdf", pdf)
End Sub
End Class
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.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
var html = "<html><body><h1>Document Content</h1></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.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("document.pdf");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>My Header</div>"}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>Page {page}</div>"}
Dim html As String = "<html><body><h1>Document Content</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("document.pdf")
End Sub
End Module
Cet exemple illustre une différence architecturale essentielle. PeachPDFutilise des propriétés de chaîne simples (converter.Header et converter.Footer) pour les en-têtes et les pieds de page.IronPDFutilise des objets HtmlHeaderFooter affectés à RenderingOptions.HtmlHeader et RenderingOptions.HtmlFooter.
L'approcheIronPDFoffre une plus grande flexibilité : les objets peuvent inclure des propriétés supplémentaires, comme celles permettant de contrôler la taille de l'en-tête et du pied de page. Notez que les deux bibliothèques utilisent {page} comme espace réservé pour le numéro de page. IronPDF prend également en charge {total-pages} pour le nombre total de pages.
Notez l'espace de noms supplémentaire requis pour IronPDF: using IronPdf.Rendering; est nécessaire pour la classe HtmlHeaderFooter.
Notes de migration essentielles
Changement de classe de convertisseur
PeachPDF utilise HtmlToPdfConverter;IronPDFutilise ChromePdfRenderer:
// PeachPDF
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PeachPDF
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PeachPDF
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
Changement de type de retour
PeachPDF renvoie byte[];IronPDFrenvoie PdfDocument:
// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;
// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;
' PeachPDF: Returns byte array
Dim pdf As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdf)
' IronPDF: Returns PdfDocument object
Dim pdfDoc As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDoc.SaveAs("output.pdf")
' Or get bytes: Dim bytes As Byte() = pdfDoc.BinaryData
Modification de la propriété de l'en-tête/du pied de page
// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";
// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Header</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Footer</div>"
};
// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";
// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Header</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Footer</div>"
};
' PeachPDF: Simple string properties
converter.Header = "<div>Header</div>"
converter.Footer = "<div>Footer</div>"
' IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div>Header</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div>Footer</div>"
}
Modification des noms de méthode
| PeachPDF | IronPDF |
|---|---|
Convert(html) |
RenderHtmlAsPdf(html) |
ConvertUrl(url) |
RenderUrlAsPdf(url) |
File.WriteAllBytes() |
SaveAs() |
Nouvelles capacités après la migration
Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que PeachPDFne peut pas vous offrir :
Fusion de fichiers PDF
var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
CONVERTER NOT RUNNING
Les filigranes avec HTML
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>")
pdf.SaveAs("watermarked.pdf")
Protection par mot de passe
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
pdf.SaveAs("protected.pdf")
Signatures numériques
using IronPdf.Signing;
var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Document Approval",
SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf.Signing;
var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Document Approval",
SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
Imports IronPdf.Signing
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.SigningReason = "Document Approval",
.SigningLocation = "New York"
}
pdf.Sign(signature)
pdf.SaveAs("signed.pdf")
Opérations asynchrones
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>")
pdf.SaveAs("async_output.pdf")
Résumé de la comparaison des fonctionnalités
| Fonction | PeachPDF | IronPDF |
|---|---|---|
| HTML vers PDF | Basique | Chromium complet |
| URL vers PDF | Limité | Oui |
| Grille CSS/Flexbox | Non | Oui |
| JavaScript | Limité | ES2024 complet |
| Fusionner des PDF | Oui | Oui |
| Diviser les PDF | Limité | Oui |
| Filigranes | Limité | HTML complet |
| En-têtes/Pieds de page | Basique | HTML complet |
| Signatures numériques | Non | Oui |
| PDF/A | Non | Oui |
| Remplissage de formulaires | Limité | Oui |
| Extraction de texte | Basique | Oui |
| Extraction d'images | Non | Oui |
| Prise en charge de l'asynchronisme | Limité | Oui |
| Multiplateforme | Inconnu | Oui |
Problèmes de migration courants
Enjeu 1 : Modèle d'API différent
Problème: PeachPDFutilise un modèle de convertisseur avec sortie de tableau d'octets ;IronPDFutilise un modèle de rendu avec sortie PdfDocument.
Solution:
// PeachPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);
//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
// PeachPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);
//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
' PeachPDFpattern
Dim converter As New HtmlToPdfConverter()
Dim pdf = converter.Convert(html)
File.WriteAllBytes(path, pdf)
' IronPDFpattern
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs(path)
Enjeu 2 : Différence de méthode de sauvegarde
Problème : PeachPDFnécessite File.WriteAllBytes() ;IronPDFa intégré SaveAs().
Solution : Remplacez File.WriteAllBytes("path", pdf) par pdf.SaveAs("path").
Sujet 3 : Objets d'en-tête et de pied de page
Problème: PeachPDFutilise des propriétés de chaînes de caractères ;IronPDFutilise des propriétés d'objet.
Solution : Enveloppez les chaînes HTML dans des objets HtmlHeaderFooter avec la propriété HtmlFragment.
Liste de contrôle de la migration
Pré-migration
- Auditer l'utilisation de PeachPDFdans le code source
- Documenter les configurations personnalisées
- Notez toutes les implémentations d'en-tête/pied de page
- Obtenez votre clé de licenceIronPDFsur IronPDF
- Commencez par tester avec une licence d'essaiIronPDF.
Modifications du paquet
- Supprimer le package NuGet
PeachPDF - Installez le package NuGet
IronPdf:dotnet add package IronPdf
Modifications du code
- Mise à jour des importations d'espace de noms (
using PeachPDF;→using IronPdf;) - Ajouter
using IronPdf.Rendering;pour les fonctionnalités d'en-tête/pied de page - Remplacez
HtmlToPdfConverterparChromePdfRenderer - Remplacez
converter.Convert(html)parrenderer.RenderHtmlAsPdf(html) - Remplacez
converter.ConvertUrl(url)parrenderer.RenderUrlAsPdf(url) - Remplacez
File.WriteAllBytes(path, pdf)parpdf.SaveAs(path) - Remplacez les objets
Footerpar les objetsHtmlFooter - Ajouter l'initialisation de la licence au démarrage de l'application
Après la migration
- Tester la qualité du rendu HTML
- Vérifier que la sortie PDF correspond aux attentes
- Tester l'affichage de l'en-tête/du pied de page avec les numéros de page
- Ajouter de nouvelles fonctionnalités (sécurité, filigranes, fusion) selon les besoins

