Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de PDFSharp à IronPDF en C#

Migrer dePDFSharpàIronPDF: Guide de migration complet 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

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

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
SHELL

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";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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" .
SHELL

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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages de l'API de base

API PDFSharp API IronPDF Notes
new PdfDocument() ChromePdfRenderer.RenderHtmlAsPdf() Créer à partir de HTML
document.AddPage() Automatique Pages créées à partir de contenu HTML
XGraphics.FromPdfPage() Pas nécessaire Utiliser des éléments HTML
XGraphics.DrawString() HTML <p>, <h1>, etc. Position avec CSS
XGraphics.DrawImage() HTML <img> balise Position avec CSS
XFont CSS font-family, font-size CSS standard
XBrush, XPen Couleurs/bordures CSS color, background-color
document.Save() pdf.SaveAs() Fonctionnalités similaires
PdfReader.Open() PdfDocument.FromFile() Ouvrir le PDF existant

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);

        // Manuel 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);

        // Manuel 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 vers PDFconversion</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 vers PDFconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 PdfDocument, ajouter une PdfPage, obtenir un objet XGraphics, créer une XFont, et utiliser DrawString() avec des coordonnées XRect.

IronPDF fournit un rendu HTML vers PDF natif par le biais de 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp nécessite l'ouverture du PDF avec PdfReader.Open()spécifiant PdfDocumentOpenMode.Modify, l'accès à une page, la création d'un objet XGraphics, la création d'une XFontavec style, et l'utilisation de DrawString() avec un XPoint spécifiant des 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 et IronPdf se charge du positionnement. Notez que l'espace de noms IronPdf.Editing est nécessaire 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp nécessite la création d'un nouveau PdfDocument, l'ajout d'une PdfPage, l'obtention de XGraphics, le chargement d'une XImage à partir d'un fichier, le calcul de la largeur et de la hauteur, l'utilisation de DrawImage() avec des coordonnées exactes (50, 50, 200, 200), puis l'ajout séparé de texte avec DrawString().

IronPDF utilise du HTML standard avec une balise <img> et un style CSS (style='width:200px ; height:200px;'). Aucun calcul de coordonnées n'est nécessaire - la mise en page est gérée par CSS.IronPDFfournit également ImageStamper pour l'ajout d'images aux PDF existants avec des propriétés d'alignement déclaratives. Pour en savoir plus, consultez nos tutoriels.


Notesde 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: Manuel 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: Manuel 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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>";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification de l'accès à la page

// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF: Automatiquepage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF: Automatiquepage handling or pdf.Pages[0]
// Pages are created automatically from HTML content
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

URL en PDF

var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Les filigranes avec HTML

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

  • [Inventaire de l'utilisation dePDFSharpdans la base de code
  • [Identifier les types de documents générés (rapports, factures, certificats)
  • [Notez toute opération de graphisme ou de dessin personnalisée
  • [Planifier le stockage des clés de licenceIronPDF(variables d'environnement recommandées)
  • [Testez d'abord avec la licence d'essai d'IronPDF

Modifications du paquet

  • supprimer le package NuGet PdfSharp [ ]
  • [Supprimer le paquet NuGet PdfSharp-wpf s'il est utilisé
  • [Supprimer le paquet NuGet PdfSharp.Charting s'il est utilisé
  • [Installer le package NuGet IronPdf : dotnet add package IronPdf

Modifications du code

  • [Mise à jour des importations d'espaces de noms (utilisant PdfSharp.Pdf;utilisant IronPdf;)
  • [Ajouter utilisant IronPdf.Editing; pour la fonctionnalité d'estampillage
  • [Convertir des mises en page basées sur les coordonnées en HTML/CSS
  • [Remplacer XFontpar les propriétés des polices CSS
  • [Remplacer XBrush/XPen par des couleurs/bordures CSS
  • [Remplacer XGraphics.DrawString()par des éléments de texte HTML
  • [Remplacer XGraphics.DrawImage()par des balises HTML <img>
  • [Remplacer PdfReader.Open()par PdfDocument.FromFile()
  • [Remplacer document.Save()par pdf.SaveAs()
  • [ ] Convertir un code de dessin de tableau en tableaux HTML

Post-Migration

  • [Comparaison visuelle des PDF générés
  • [Tester des documents de plusieurs pages
  • [Vérifier le rendu des polices
  • [Ajouter de nouvelles fonctionnalités (HTML vers PDF, fusion, filigranes) selon les besoins

Conclusion

PDFSharp etIronPDFrépondent à des besoins différents dans le domaine de la génération de PDF pour C#.PDFSharpconvient aux projets nécessitant un contrôle précis du rendu des documents sans dépendances supplémentaires, et lorsque les contraintes budgétaires entrent en ligne de compte. Cependant, elle n'est pas à la hauteur pour les projets nécessitant des normes web modernes ou un contenu dynamique fourni via HTML.

Les principaux changements apportés à cette migration sont les suivants :

  1. Paradigme : Dessin basé sur les coordonnées → HTML/CSS templating
  2. Support HTML : Non disponible → Rendu natif de Chromium
  3. Mise en page : Positionnement manuel X,Y → CSS Flow/Flexbox/Grid
  4. Fonts : objets XFont→ CSS font-family, font-size
  5. Couleurs : XBrush, XPen→ CSS color, background-color, border
  6. Images : XImage.FromFile() + DrawImage() → HTML <img> ou ImageStamper
  7. Tamponnage de texte : XGraphics.DrawString()TextStamper
  8. Chargement de document : PdfReader.Open()PdfDocument.FromFile()
  9. Enregistrement : document.Save()pdf.SaveAs()
  10. Nouvelles fonctionnalités : Fusion PDF, URL vers PDF, prise en charge CSS moderne, et plus encore

IronPDF surpassePDFSharpdans les situations nécessitant une conversion moderne de HTML en PDF, grâce à ses fonctionnalités et capacités robustes prenant en charge CSS3, HTML5 et la manipulation de documents de haut niveau. Bien qu'il s'agisse d'une licence payante, l'augmentation de la productivité et les fonctionnalités modernes justifient souvent l'investissement.

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers PDFSharp.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite