Comment migrer de XFINIUM.PDF vers IronPDF en C#
XFINIUM.PDF est une bibliothèque PDF multiplateforme commerciale, développée par O2 Solutions, qui propose des outils pour créer et éditer des PDF de manière programmatique en C#. Elle est livrée en deux éditions — Generator (génération et édition de PDF) et Viewer (caractéristiques du Generator plus rendu/affichage). La bibliothèque est distribuée sur NuGet sous Xfinium.Pdf.NetStandard et Xfinium.Pdf.NetCore. Son modèle de programmation graphique basé sur les coordonnées peut créer des frictions pour les équipes construisant des applications riches en documents, car la plupart des travaux de mise en page impliquent de positionner manuellement des éléments en utilisant des coordonnées en pixels.
Ce guide propose un chemin de migration de XFINIUM.PDF à IronPDF, avec des instructions pas-à-pas, des comparaisons de code et des exemples pratiques pour les développeurs .NET évaluant cette transition.
Pourquoi migrer de XFINIUM.PDF
XFINIUM.PDF est une bibliothèque PDF de bas niveau qui repose sur la programmation graphique basée sur les coordonnées, ce qui signifie que les développeurs positionnent la plupart des éléments sur la page directement. Les raisons courantes pour lesquelles les équipes de développement envisagent la migration incluent :
Pas de moteur HTML natif : XFINIUM.PDF n'a pas de convertisseur HTML vers PDF intégré. Le fournisseur livre un exemple de parcours XHTML qui prend en charge un ensemble de balises limité (p, font, b, i, u, ul, li) et ne parse pas le CSS ni n'exécute le JavaScript, ce qui peut ne pas suffire pour des projets nécessitant des capacités complètes de HTML à PDF.
API basée sur les coordonnées : Le positionnement manuel avec des coordonnées en pixels comme DrawString("text", font, brush, 50, 100) est requis pour la plupart des placements d'éléments.
Gestion manuelle des polices : Les objets de police doivent être créés et gérés explicitement en utilisant des classes comme PdfStandardFont et PdfBrush.
Pas de style CSS : aucune prise en charge des styles web modernes. Les couleurs, les polices et les mises en page sont gérés via des appels de méthode programmatiques.
Aucun rendu JavaScript : contenu statique uniquement. XFINIUM.PDF ne rend pas de contenu web dynamique ni n'exécute JavaScript.
Mise en page texte complexe : Les calculs de mesure de texte et d'enveloppement sont généralement requis pour quelque chose au-delà du simple texte à ligne unique.
Plus petite communauté : Moins d'exemples et de tutoriels fournis par la communauté par rapport aux solutions dominantes, ce qui peut rendre plus difficile pour les nouveaux utilisateurs de démarrer.
Le problème central : API graphique vs HTML
XFINIUM.PDF vous oblige à penser comme un programmeur graphique, et non comme un concepteur de documents :
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
' XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50)
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80)
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80)
' ... hundreds of lines for a simple document
IronPDF utilise des langages HTML/CSS familiers :
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML
Dim html As String = "<h1>Invoice</h1><p><b>Customer:</b> " & customer.Name & "</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
IronPDF vs XFINIUM.PDF : Comparaison des fonctionnalités
La compréhension des différences architecturales aide les décideurs techniques à évaluer l'investissement dans la migration :
| Fonction | XFINIUM.PDF | IronPDF |
|---|---|---|
| HTML à PDF | Pas de moteur natif ; convertisseur XHTML d'exemple uniquement (balises limitées, pas de CSS/JS) | Conversion complète de HTML-à-PDF avec Chromium (CSS3 + JavaScript) |
| Communauté et assistance | Communauté plus restreinte, moins de ressources en ligne disponibles | Une grande communauté avec une documentation et des tutoriels complets |
| Licence | Commercial avec licence basée sur les développeurs | Commercial |
| Support multiplateforme | De solides capacités multiplateformes | Prend également en charge les opérations multiplateformes |
| Support CSS | Non | CSS3 complet |
| JavaScript | Non | ES2024 complet |
| Flexbox/Grid | Non | Oui |
| Mise en page automatique | Non | Oui |
| Sauts de page automatiques | Non | Oui |
| Positionnement manuel | Les exigences sont les suivantes | Facultatif (positionnement CSS) |
| Courbe d'apprentissage | Haut (système de coordonnées) | Faible (HTML/CSS) |
| Verbosité du code | Très élevé | Faible |
Démarrage rapide : Migration de XFINIUM.PDF vers IronPDF
La migration peut commencer immédiatement grâce à ces étapes fondamentales.
Étape 1 : Remplacer le package NuGet
Supprimez XFINIUM.PDF (les ID NuGet réels sont spécifiques à la plateforme) :
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
Installez IronPDF:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Étape 2 : Mise à jour des espaces de noms
Remplacez les espaces de noms XFINIUM.PDF par l'espace de nom IronPDF:
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
Imports IronPdf
Étape 3 : initialisation de la licence
Ajouter l'initialisation de la licence au démarrage de l'application :
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Exemples de migration de code
Conversion de HTML en PDF
L'opération la plus fondamentale révèle la différence de complexité entre ces bibliothèques PDF .NET.
Approche XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFlowDocument flowDocument = new PdfFlowDocument();
flowDocument.AddContent(new PdfFlowHeadingContent(
"Hello World",
new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));
flowDocument.AddContent(new PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
flowDocument.Save(fs);
}
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFlowDocument flowDocument = new PdfFlowDocument();
flowDocument.AddContent(new PdfFlowHeadingContent(
"Hello World",
new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));
flowDocument.AddContent(new PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
flowDocument.Save(fs);
}
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.FlowDocument
Imports Xfinium.Pdf.Graphics
Imports System.IO
Module Program
Sub Main()
Dim flowDocument As New PdfFlowDocument()
flowDocument.AddContent(New PdfFlowHeadingContent(
"Hello World",
New PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)))
flowDocument.AddContent(New PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
New PdfStandardFont(PdfStandardFontFace.Helvetica, 12)))
Using fs As New FileStream("output.pdf", FileMode.Create)
flowDocument.Save(fs)
End Using
End Sub
End Module
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF exige la création d'un PdfFlowDocument, l'instanciation d'objets PdfStandardFont pour chaque style, la construction de chaque élément de contenu en tant que PdfFlowHeadingContent ou PdfFlowTextContent, leur ajout au document dynamique et leur enregistrement via un FileStream. L'API du document de flux accepte des objets de contenu typés, pas de balisage HTML.IronPDF simplifie cela en trois lignes : créez un moteur de rendu, rendez le HTML et sauvegardez.
Pour les scénarios avancés de conversion de HTML en PDF, voir le guide de conversion de HTML en PDF.
Fusionner plusieurs fichiers PDF
La fusion des PDF montre clairement les différences de complexité des API.
Approche XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
Imports Xfinium.Pdf
Imports System.IO
Module Program
Sub Main()
Dim output As New PdfFixedDocument()
Dim file1 As FileStream = File.OpenRead("document1.pdf")
Dim pdf1 As New PdfFixedDocument(file1)
Dim file2 As FileStream = File.OpenRead("document2.pdf")
Dim pdf2 As New PdfFixedDocument(file2)
For i As Integer = 0 To pdf1.Pages.Count - 1
output.Pages.Add(pdf1.Pages(i))
Next
For i As Integer = 0 To pdf2.Pages.Count - 1
output.Pages.Add(pdf2.Pages(i))
Next
output.Save("merged.pdf")
file1.Close()
file2.Close()
End Sub
End Module
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
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");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
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");
}
}
Imports IronPdf
Imports System.Collections.Generic
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")
End Sub
End Class
XFINIUM.PDF nécessite la création d'un document de sortie, l'ouverture de flux de fichiers, le chargement de chaque document, l'itération manuelle des pages et leur ajout une à une, la sauvegarde, puis la fermeture des flux.IronPDF fournit une méthode PdfDocument.Merge() unique qui gère toute la complexité en interne.
Explorez la documentation sur la fusion de fichiers PDF pour obtenir des options de fusion supplémentaires.
Créer des PDF avec du texte et des images
Les documents au contenu mixte montrent la différence fondamentale de paradigme.
Approche XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
using (FileStream imageStream = File.OpenRead("image.jpg"))
{
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
}
document.Save("output.pdf");
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
using (FileStream imageStream = File.OpenRead("image.jpg"))
{
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
}
document.Save("output.pdf");
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Graphics
Imports System.IO
Class Program
Shared Sub Main()
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
Dim font As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
Dim brush As New PdfBrush(New PdfRgbColor(0, 0, 0))
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50)
Using imageStream As FileStream = File.OpenRead("image.jpg")
Dim image As New PdfJpegImage(imageStream)
page.Graphics.DrawImage(image, 50, 100, 200, 150)
End Using
document.Save("output.pdf")
End Sub
End Class
Approche IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim imageBase64 As String = Convert.ToBase64String(File.ReadAllBytes("image.jpg"))
Dim html As String = $"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF exige la création d'un document, l'ajout d'une page, la création d'objets de police et de pinceau, le dessin du texte à des coordonnées spécifiques, l'ouverture d'un flux d'image, la création d'un PdfJpegImage, le dessin de l'image aux coordonnées avec les dimensions, la fermeture du flux et l'enregistrement.IronPDF utilise du HTML standard avec des images base64 intégrées - la même approche que celle utilisée quotidiennement par les développeurs web.
Référence de mappage de l'API XFINIUM.PDF vers IronPDF
Cette cartographie accélère la migration en indiquant les équivalents directs des API :
| XFINIUM.PDF | IronPDF |
|---|---|
PdfFixedDocument |
ChromePdfRenderer |
PdfPage |
Automatique |
page.Graphics.DrawString() |
Éléments de texte HTML |
page.Graphics.DrawImage() |
Tag <img> |
page.Graphics.DrawLine() |
CSS border ou <hr> |
page.Graphics.DrawRectangle() |
CSS border sur |
PdfStandardFont |
CSS font-family |
PdfRgbColor |
CSS color |
PdfBrush |
Propriétés CSS |
PdfJpegImage |
Tag avec base64 |
document.Save(stream) |
pdf.SaveAs() ou pdf.BinaryData |
PdfFlowDocument |
RenderHtmlAsPdf() |
| Convertisseur XHTML d'exemple du fournisseur | RenderHtmlAsPdf() |
Problèmes de migration courants et solutions
Édition 1 : Mise en page basée sur les coordonnées
XFINIUM.PDF: Tout nécessite des coordonnées X,Y exactes avec positionnement manuel.
Solution: Utiliser la mise en page HTML/CSS. Pour un positionnement absolu lorsque cela est nécessaire, utilisez CSS :
.positioned-element {
position: absolute;
top: 100px;
left: 50px;
}
Édition 2 : Gestion des objets de police
XFINIUM.PDF : Créez des objets PdfStandardFont ou PdfUnicodeTrueTypeFont pour chaque police.
Solution: Utilisez CSS fontamily - les polices sont gérées automatiquement :
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
Numéro 3 : Traitement des couleurs
XFINIUM.PDF : Créez des objets PdfRgbColor et PdfBrush pour les couleurs.
Solution: Utilisez les couleurs CSS standard :
.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }
.info { color: rgba(0, 0, 255, 0.8); }
Edition 4 : Sauts de page manuels
XFINIUM.PDF: Suivre la position Y et créer de nouvelles pages manuellement lorsque le contenu déborde.
Solution:IronPDF gère les sauts de page automatiques. Pour un contrôle explicite, utilisez CSS :
.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }
Edition 5 : Chargement d'images
XFINIUM.PDF : Ouvrez des flux de fichiers, créez des objets PdfJpegImage, dessinez aux coordonnées, fermez les flux.
Solution : Utilisez des balises HTML avec des chemins de fichiers ou des données base64 :
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
Liste de contrôle pour la migration vers XFINIUM.PDF
Tâches préalables à la migration
Auditez votre base de code pour identifier toute utilisation de XFINIUM.PDF :
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
Documentez les mises en page basées sur les coordonnées et notez toutes les valeurs de positionnement X,Y. Identifiez les objets de police et de couleur (PdfStandardFont, PdfRgbColor, PdfBrush). Mappez les flux de travail PDF fusionnés en utilisant PdfFixedDocument.Pages.Add().
Tâches de mise à jour du code
- Supprimer le paquet NuGet Xfinium.Pdf
- Installez le package NuGet IronPDF
- Mettez à jour les importations de namespace de
Xfinium.PdfàIronPdf - Convertissez les appels
DrawString()en éléments texte HTML - Convertissez les appels
DrawImage()en balises HTML - Convertissez
DrawRectangle()etDrawLine()en bordures CSS - Remplacez
PdfStandardFontpar CSSfont-family - Remplacez
PdfRgbColoretPdfBrushpar des couleurs CSS - Remplacez la fusion des boucles de pages par
PdfDocument.Merge() - Ajouter l'initialisation de la licence IronPDF au démarrage
Test de post-migration
Après la migration, vérifiez ces aspects :
- Comparer les résultats visuels pour s'assurer que l'apparence correspond aux attentes
- Vérifier le rendu du texte avec la nouvelle approche HTML/CSS
- Vérifier le positionnement des images à l'aide de CSS
- Les sauts de page de test se produisent comme prévu
- Vérifier que les paramètres de sécurité des PDF sont correctement appliqués
- Test sur toutes les plateformes cibles
Avantages clés de la migration vers IronPDF
Le passage de XFINIUM.PDF à IronPDF présente plusieurs avantages décisifs :
Création de contenu basé sur HTML : les développeurs web peuvent tirer parti de leurs compétences existantes en HTML et CSS. Il n'est pas nécessaire d'apprendre les API de dessin basées sur les coordonnées ou de gérer les objets de police et de pinceau.
Mise en page automatique : le retour à la ligne, la pagination et la mise en page sont automatiques. Pas de calcul manuel de la position des éléments ou des sauts de page.
Prise en charge complète des CSS modernes : CSS3, y compris les mises en page Flexbox et Grid. Les conceptions réactives sont traduites directement en PDF.
Opérations PDF simplifiées : Les appels à méthode unique pour les opérations courantes comme PdfDocument.Merge() remplacent les boucles d'itération de pages complexes.
Développement actif : Les mises à jour régulières de IronPDF suivent le rythme des versions actuelles de .NET et des sorties de langage C#.
Documentation exhaustive : une vaste communauté proposant une documentation complète, des tutoriels et des ressources d'assistance, contrairement à l'écosystème plus restreint de XFINIUM.PDF.

