Comment migrer de PDFSharp à IronPDF en C#
La migration dePDFSharpversIronPDFtransforme votre flux de production de PDF, qui passe d'un dessin manuel basé sur les coordonnées à un templating HTML/CSS moderne. Ce guide fournit un chemin de migration complet, étape par étape, qui remplace le positionnement fastidieux du style GDI+ par des technologies web, réduisant considérablement le temps de développement et rendant la génération de PDF maintenable grâce à des compétences HTML/CSS standard.
Pourquoi passer dePDFSharpà IronPDF
Comprendre PDFSharp
PDFSharp est réputé pour être une bibliothèque de création de PDF de bas niveau, permettant aux développeurs de générer des documents PDF par le biais d'une approche programmatique. Publié sous la licence MIT,PDFSharpaccorde à la communauté des développeurs la liberté d'utilisation et de modification.PDFSharpfonctionne principalement comme un outil permettant de dessiner et de compiler des PDF à partir de zéro, ce qui peut être à la fois avantageux et restrictif selon la nature du projet.
PDFSharp est parfois considéré à tort comme un convertisseur HTML-PDF, ce qui n'est pas le cas. L'objectif est uniquement la création programmatique de documents PDF. Bien qu'il existe un module complémentaire, HtmlRenderer.PdfSharp, destiné à fournir des capacités de rendu HTML, il ne prend en charge que CSS 2.1, sans prendre en charge les fonctionnalités CSS modernes telles que flexbox et grid.
Le problème du calcul des coordonnées
L'approche GDI+ dePDFSharpsignifie que vous devez :
- Calculer les positions X,Y exactes de chaque élément
- Suivi manuel de la hauteur du contenu pour le débordement de la page
- Gérez vous-même le retour à la ligne et la mesure du texte
- Dessiner des tableaux cellule par cellule avec des calculs de bordures
- Gérer des documents de plusieurs pages avec des sauts de page manuels
L'architecture dePDFSharpnécessite une compréhension approfondie du positionnement à l'aide de coordonnées, ce qui pose souvent des problèmes lors de la création de mises en page complexes.
ComparaisonPDFSharpvs IronPDF
| Fonction | PDFSharp | IronPDF |
|---|---|---|
| Licence | MIT (gratuit) | Commercial |
| Support HTML vers PDF | Non | Oui (prise en charge de HTML5/CSS3) |
| Support CSS moderne | Non (CSS 2.1 uniquement) | Oui (CSS3 complet) |
| Création de documents | Dessin à base de coordonnées | Modèles HTML/CSS |
| Système de mise en page | Positionnement manuel X,Y | CSS Flow/Flexbox/Grid |
| Sauts de page | Calcul manuel | Automatique + contrôle CSS |
| Tables | Dessiner des cellules individuellement | HTML <table> |
| Styling | Polices/couleurs basées sur le code | Feuilles de style CSS |
| Document API | Bas niveau (nécessite des coordonnées) | Haut niveau (API simplifiée) |
| Mises à jour | Peu fréquents | Régulièrement |
IronPDF brille dans les scénarios où les documents HTML doivent être convertis en PDF avec une fidélité totale. Cette bibliothèque .NET prend en charge HTML5 et CSS3, ce qui garantit le respect des normes web modernes. Grâce à ses capacités natives de conversion de HTML en PDF, les développeurs peuvent tirer parti du contenu web existant ou des modèles conçus avec des outils web contemporains.
Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une approche moderne qui élimine les calculs de coordonnées tout en tirant parti des compétences en matière de développement web.
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 PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting
# Add IronPDF
dotnet add package IronPdf
# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting
# Add 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 PDFSharp
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
Référence API complète
Modifications de l'espace de nommage
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Editing;
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Editing;
Imports IronPdf
Imports IronPdf.Editing
Mappages de l'API de base
| API PDFSharp | API IronPDF |
|---|---|
new PdfDocument() |
ChromePdfRenderer.RenderHtmlAsPdf() |
document.AddPage() |
Automatique |
XGraphics.FromPdfPage() |
Pas nécessaire |
XGraphics.DrawString() |
HTML <p>, <h1>, etc. |
XGraphics.DrawImage() |
Balise HTML <img> |
XFont |
CSS font-family, font-size |
XBrush, XPen |
Couleurs/bordures CSS |
document.Save() |
pdf.SaveAs() |
PdfReader.Open() |
PdfDocument.FromFile() |
Exemples de migration de code
Exemple 1 : Conversion HTML vers PDF
Avant (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
//PDFSharpdoes not have built-in HTML vers PDFconversion
// You need to manually parse HTML and render content
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 12);
// Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.TopLeft);
document.Save("output.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
//PDFSharpdoes not have built-in HTML vers PDFconversion
// You need to manually parse HTML and render content
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 12);
// Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.TopLeft);
document.Save("output.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports System
Class Program
Shared Sub Main()
' PDFSharp does not have built-in HTML to PDF conversion
' You need to manually parse HTML and render content
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage()
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim font As New XFont("Arial", 12)
' Manual text rendering (no HTML support)
gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black, _
New XRect(0, 0, page.Width, page.Height), _
XStringFormats.TopLeft)
document.Save("output.pdf")
End Sub
End Class
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
//IronPDFhas native HTML vers PDFrendering
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello from IronPDF</h1><p>Easy HTML to PDF conversion</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
//IronPDFhas native HTML vers PDFrendering
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello from IronPDF</h1><p>Easy HTML to PDF conversion</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' IronPDF has native HTML versus PDF rendering
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Hello from IronPDF</h1><p>Easy HTML to PDF conversion</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Cet exemple met en évidence la différence la plus importante entre les deux bibliothèques.PDFSharpindique explicitement qu'il " n'a pas de conversion HTML vers PDF intégrée " — vous devez créer manuellement un objet PdfDocument, ajouter un objet PdfPage, obtenir un objet XGraphics, créer un objet XFont et utiliser DrawString() avec les coordonnées XRect.
IronPDF fournit un rendu HTML natif vers PDF via ChromePdfRenderer. La méthode RenderHtmlAsPdf() accepte les chaînes HTML et les convertit en utilisant un moteur Chromium en interne.IronPDFconvertit facilement les fichiers HTML en PDF, en préservant tous les styles définis en HTML5 et CSS3, éliminant ainsi le besoin de calculs de coordonnées. Consultez la documentation HTML vers PDF pour des exemples complets.
Exemple 2 : Ajout d'un texte ou d'un filigrane à un PDF existant
Avant (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
PdfPage page = document.Pages[0];
// Get graphics object
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 20, XFontStyle.Bold);
// Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red,
new XPoint(200, 400));
document.Save("modified.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
PdfPage page = document.Pages[0];
// Get graphics object
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Arial", 20, XFontStyle.Bold);
// Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red,
new XPoint(200, 400));
document.Save("modified.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Drawing
Imports System
Module Program
Sub Main()
' Open existing PDF
Dim document As PdfDocument = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify)
Dim page As PdfPage = document.Pages(0)
' Get graphics object
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim font As New XFont("Arial", 20, XFontStyle.Bold)
' Draw text at specific position
gfx.DrawString("Watermark Text", font, XBrushes.Red, New XPoint(200, 400))
document.Save("modified.pdf")
End Sub
End Module
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add text stamp/watermark
var textStamper = new TextStamper()
{
Text = "Watermark Text",
FontSize = 20,
Color = IronSoftware.Drawing.Color.Red,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("modified.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;
class Program
{
static void Main()
{
// Open existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add text stamp/watermark
var textStamper = new TextStamper()
{
Text = "Watermark Text",
FontSize = 20,
Color = IronSoftware.Drawing.Color.Red,
VerticalAlignment = VerticalAlignment.Middle,
HorizontalAlignment = HorizontalAlignment.Center
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("modified.pdf");
}
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Module Program
Sub Main()
' Open existing PDF
Dim pdf = PdfDocument.FromFile("existing.pdf")
' Add text stamp/watermark
Dim textStamper = New TextStamper() With {
.Text = "Watermark Text",
.FontSize = 20,
.Color = IronSoftware.Drawing.Color.Red,
.VerticalAlignment = VerticalAlignment.Middle,
.HorizontalAlignment = HorizontalAlignment.Center
}
pdf.ApplyStamp(textStamper)
pdf.SaveAs("modified.pdf")
End Sub
End Module
PDFSharp nécessite d'ouvrir le PDF avec PdfReader.Open() en spécifiant PdfDocumentOpenMode.Modify, d'accéder à une page, de créer un objet XGraphics, de créer un objet XFont avec style, et d'utiliser DrawString() avec un objet XPoint en spécifiant les coordonnées X,Y exactes (200, 400).
IronPDF simplifie cela avec PdfDocument.FromFile(), un objet TextStamper avec des propriétés déclaratives (Text, FontSize, Color, VerticalAlignment, HorizontalAlignment), et ApplyStamp(). Aucun calcul de coordonnées n'est nécessaire : il suffit de spécifier l'alignement etIronPDFse charge du positionnement. Notez que l'espace de noms IronPdf.Editing est requis pour la fonctionnalité d'estampillage.
Exemple 3 : Création de PDF avec des images
Avant (PDFSharp):
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Create new PDF document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
// Load and draw image
XImage image = XImage.FromFile("image.jpg");
// Calculate size to fit page
double width = 200;
double height = 200;
gfx.DrawImage(image, 50, 50, width, height);
// Add text
XFont font = new XFont("Arial", 16);
gfx.DrawString("Image in PDF", font, XBrushes.Black,
new XPoint(50, 270));
document.Save("output.pdf");
}
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;
class Program
{
static void Main()
{
// Create new PDF document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
// Load and draw image
XImage image = XImage.FromFile("image.jpg");
// Calculate size to fit page
double width = 200;
double height = 200;
gfx.DrawImage(image, 50, 50, width, height);
// Add text
XFont font = new XFont("Arial", 16);
gfx.DrawString("Image in PDF", font, XBrushes.Black,
new XPoint(50, 270));
document.Save("output.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports System
Module Program
Sub Main()
' Create new PDF document
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage()
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Load and draw image
Dim image As XImage = XImage.FromFile("image.jpg")
' Calculate size to fit page
Dim width As Double = 200
Dim height As Double = 200
gfx.DrawImage(image, 50, 50, width, height)
' Add text
Dim font As New XFont("Arial", 16)
gfx.DrawString("Image in PDF", font, XBrushes.Black, New XPoint(50, 270))
document.Save("output.pdf")
End Sub
End Module
Après (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create PDF from HTML with image
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Alternative: Add image to existing PDF
var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
{
VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
};
existingPdf.ApplyStamp(imageStamper);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create PDF from HTML with image
var renderer = new ChromePdfRenderer();
string html = @"
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Alternative: Add image to existing PDF
var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
{
VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
};
existingPdf.ApplyStamp(imageStamper);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create PDF from HTML with image
Dim renderer = New ChromePdfRenderer()
Dim html As String = "
<h1>Image in PDF</h1>
<img src='image.jpg' style='width:200px; height:200px;' />
<p>Easy image embedding with HTML</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Alternative: Add image to existing PDF
Dim existingPdf = New ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>")
Dim imageStamper = New IronPdf.Editing.ImageStamper(New Uri("image.jpg")) With {
.VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
}
existingPdf.ApplyStamp(imageStamper)
End Sub
End Class
PDFSharp nécessite la création d'un nouveau PdfDocument, l'ajout d'un PdfPage, la récupération d'un XGraphics, le chargement d'un XImage à partir d'un fichier, le calcul de la largeur et de la hauteur, l'utilisation d'un DrawImage() avec des coordonnées exactes (50, 50, 200, 200), puis l'ajout séparé de texte avec un DrawString().
IronPDF utilise du HTML standard avec une balise <img> et un style CSS (style='width:200px; hauteur:200px;'). Aucun calcul de coordonnées n'est nécessaire - la mise en page est gérée par CSS.IronPDFfournit également ImageStamper pour ajouter des images aux PDF existants avec des propriétés d'alignement déclaratives. Pour en savoir plus, consultez nos tutoriels.
Notes de migration essentielles
Changement de paradigme : Les coordonnées vers HTML/CSS
Le changement le plus important est le passage du dessin basé sur les coordonnées à HTML/CSS :
// PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));
// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));
// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
' PDFSharp: Manual positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, New XPoint(50, 50))
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, New XPoint(50, 80))
' IronPDF: Let CSS handle layout
Dim html As String = "
<div style='padding: 50px;'>
<h1>Invoice</h1>
<p>Customer: John</p>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Migration des polices
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);
// IronPDF: CSS font properties
var html = @"
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);
// IronPDF: CSS font properties
var html = @"
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
Dim titleFont As New XFont("Arial", 24, XFontStyle.Bold)
Dim bodyFont As New XFont("Times New Roman", 12)
Dim html As String = "
<style>
h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>"
Changement de chargement de document
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
Imports PdfSharp
Imports IronPDF
' PDFSharp: PdfReader.Open()
Dim document As PdfDocument = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify)
' IronPDF: PdfDocument.FromFile()
Dim pdf = PdfDocument.FromFile("existing.pdf")
Enregistrer le changement de méthode
// PDFSharp: document.Save()
document.Save("output.pdf");
// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
// PDFSharp: document.Save()
document.Save("output.pdf");
// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
Modification de l'accès à la page
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];
// IronPDF: Automatic page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];
// IronPDF: Automatic page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
' PDFSharp: document.Pages(0)
Dim page As PdfPage = document.Pages(0)
' IronPDF: Automatic page handling or pdf.Pages(0)
' Pages are created automatically from HTML content
Nouvelles capacités après la migration
Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités quePDFSharpne peut pas vous offrir :
HTML natif vers PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>")
URL en PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
Fusion de fichiers PDF
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
Les filigranes avec HTML
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
Résumé de la comparaison des fonctionnalités
| Fonction | PDFSharp | IronPDF |
|---|---|---|
| Dessin à base de coordonnées | ✓ | ✗(utiliser HTML) |
| HTML vers PDF | ✗ | ✓ |
| Prise en charge CSS3 | ✗ | ✓ |
| Mise en page Flexbox/grille | ✗ | ✓ |
| Estampillage de texte | Manuel XGraphics | TextStamper |
| Estampillage d'images | Manuel XImage | ImageStamper |
| Fusionner des PDF | Manuel | ✓ |
| URL vers PDF | ✗ | ✓ |
| Rendu Web moderne | ✗ | Moteur Chromium |
| Sauts de page automatiques | ✗ | ✓ |
Liste de contrôle de la migration
Pré-migration
- Recenser toutes les utilisations dePDFSharpdans le code source
- Identifier les types de documents générés (rapports, factures, certificats)
- Notez toute opération graphique ou de dessin personnalisée
- Planifier le stockage de la clé de licenceIronPDF(variables d'environnement recommandées)
- Commencez par tester avec une licence d'essaiIronPDF.
Modifications du paquet
- Supprimer le package NuGet
PdfSharp - Supprimez le package NuGet
PdfSharp-wpfs'il est utilisé - Supprimez le package NuGet
PdfSharp.Chartings'il est utilisé - Installez le package NuGet
IronPdf:dotnet add package IronPdf
Modifications du code
- Mise à jour des importations d'espace de noms (
using PdfSharp.Pdf;→using IronPdf;) - Ajouter
using IronPdf.Editing;pour la fonction d'estampillage - Convertir les mises en page basées sur des coordonnées en HTML/CSS
- Remplacez
XFontpar les propriétés de police CSS - Remplacez
XPenpar des couleurs/bordures CSS - Remplacez
XGraphics.DrawString()par des éléments de texte HTML - Remplacez
XGraphics.DrawImage()par les balises HTML<img> - Remplacez
PdfReader.Open()parPdfDocument.FromFile() - Remplacez
document.Save()parpdf.SaveAs() - Convertir le code de dessin de tableau en tableaux HTML
Après la migration
- Comparaison visuelle des PDF générés
- Testez les documents de plusieurs pages
- Vérifier le rendu des polices
- Ajouter de nouvelles fonctionnalités (HTML vers PDF, fusion, filigranes) selon les besoins

