COMPARAISON DES PRODUITS

PDFsharp vs QuestPDF (Comparaison approfondie de bibliothèques PDF C#)

Regan Pun
Regan Pun
février 26, 2025
Partager:

Lorsqu'ils travaillent avec des documents PDF dans .NET, les développeurs se trouvent souvent à comparer différentes bibliothèques pour déterminer laquelle convient le mieux aux exigences de leur projet. Trois choix populaires dans l'écosystème .NET sontPDFsharp, QuestPDF, et IronPDF. Chaque bibliothèque répond à différents cas d'utilisation et offre des forces et des faiblesses uniques. Dans cet article, nous fournirons une comparaison approfondie de ces bibliothèques et de leur manière de gérer la génération basique de PDF en utilisantthis URLpour vous aider à prendre une décision éclairée.

Qu'est-ce que PDFsharp ?

PDFsharp est une bibliothèque open-source conçue pour créer, éditer et rendre des documents PDF. Avec un accent sur la simplicité et les fonctionnalités PDF de base, PDFsharp a été un outil fiable pour les développeurs recherchant des capacités simples de manipulation de PDF.

Principales fonctionnalités de PDFsharp

  • Création et édition de PDF : Générez de nouveaux PDFs ou modifiez ceux existants.
  • Graphics Drawing : Inclut la prise en charge du dessin de formes, de texte et d'images.
  • Open Source : Sous licence MIT, ce qui le rend gratuit à utiliser et à modifier.

Installation

Grâce à l'utilisation du gestionnaire de paquets NuGet, il est facile d'installer PDFsharp dans vos projets, il suffit d'exécuter la ligne suivante dans la console du gestionnaire de paquets NuGet :

Install-Package PDFsharp
Install-Package PDFsharp

Exemple de code PDFsharp

Maintenant, examinons comment PDFsharp pourrait gérer la création d'un nouveau document PDF à partir d'une URL donnée. Étant donné que PDFsharp seul ne peut pas gérer la conversion de HTML ou d'URL en PDF, nous devrons intégrer un moteur de rendu web tel que HtmlRenderer.PdfSharp pour aider. En plus de cela, nous devrons également utiliser HttpClient pour récupérer le contenu HTML de l'URL donnée.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}

Fichier PDF de sortie

PDFsharp vs QuestPDF(Comparaison Approfondie des Bibliothèques PDF C#) : Figure 1

Comme vous pouvez le voir, bien que PDFsharp puisse être utilisé pour convertir du contenu HTML et des pages web en fichiers PDF, il nécessite l'aide de bibliothèques supplémentaires et ne parvient pas à conserver le CSS et la mise en forme visibles sur le site web d'origine. Bien qu'il s'agisse d'une excellente bibliothèque gratuite pour développeurs PDF, elle manque de certaines des fonctionnalités avancées que l'on retrouve dans les bibliothèques payantes telles qu'IronPDF.

Qu'est-ce que QuestPDF ?

QuestPDF est une bibliothèque moderne et open-source axée sur la génération de PDF esthétiquement plaisants en utilisant une API fluide. Son approche innovante de la mise en page et du rendu des documents en fait un concurrent de poids pour les applications nécessitant des conceptions dynamiques et complexes.

Caractéristiques clés de QuestPDF

  • API Fluent : Offre une approche déclarative pour définir les mises en page des documents.
  • Système de mise en page moderne : Inspiré par CSS, il prend en charge les grilles, les composants et les structures de mise en page flexibles. Manipulez les fichiers PDF avec ces options de style.
  • Haute performance : Optimisé pour le rendu rapide de documents volumineux et complexes.

Installation

Encore une fois, grâce à la disponibilité de cette bibliothèque en tant que paquet NuGet, son installation est un processus simple nécessitant seulement l'exécution d'une ligne de commande dans la console NuGet :

Install-Package QuestPDF
Install-Package QuestPDF

Exemple de code QuestPDF

Il est maintenant temps de voir comment QuestPDF va gérer la conversion de notre exemple d'URL au format PDF. Bien que QuestPDF ne prenne pas en charge nativement la conversion d'URL en PDF, vous pouvez utiliser un client HTTP pour récupérer le contenu HTML et le rendre en PDF en utilisant l'API fluide de QuestPDF.

using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        QuestPDF.Settings.License = LicenseType.Community;
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);
            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        QuestPDF.Settings.License = LicenseType.Community;
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);
            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}

Fichier PDF de sortie

PDFsharp vs QuestPDF(Comparaison Approfondie des Bibliothèques PDF C#) : Figure 2

Tout comme nous l'avons vu avec PDFSharp, bien que QuestPDF puisse être utilisé pour convertir du contenu HTML en PDF à l'aide de bibliothèques externes telles que HtmlAgilityPack, il est incapable de conserver le style et le formatage CSS. Bien que QuestPDF soit un excellent choix pour quiconque souhaitant créer des documents PDF à partir de zéro, la conversion de HTML en PDF n'est pas un point fort de cette bibliothèque.

IronPDF : Une bibliothèque PDF puissante

IronPDFest une bibliothèque PDF robuste conçue pour les développeurs .NET qui ont besoin de capacités PDF avancées et complètes. Son accent sur le rendu HTML en PDF, combiné avec des fonctionnalités supplémentaires telles que des options avancées pour manipuler des documents PDF, le cryptage et la conformité PDF/A, en fait un choix puissant pour les applications de niveau entreprise.

Principales caractéristiques d'IronPDF

  • HTML en PDF : Rendre facilement des pages web complètes ouChaînes HTML sous forme de PDF.
  • Conformité PDF/A : Générer des documents conformes à long termenormes d'archivage.
  • Sécurité Avancée : Prend en charge le chiffrement,protection par mot de passeetsignatures numériques.
  • Édition des PDFs : Modifier, fusionner et diviser des fichiers PDF existants.
  • Multiplateforme : Entièrement compatible avec .NET Framework, .NET Core, et .NET 5+.

Installation

Pour installer IronPDF, utilisez le gestionnaire de packages NuGet dans Visual Studio :

Utilisation du gestionnaire de packages NuGet :

  1. Ouvrez votre projet dans Visual Studio.

  2. Cliquez avec le bouton droit de la souris sur le projet dans l'explorateur de solutions et sélectionnez "Manage NuGet Packages"

  3. Recherchez "IronPDF" et cliquez sur "Installer".

    PDFsharp vs QuestPDF(Bibliothèque PDF C# Comparaison Approfondie) : Figure 3

    Utilisation de la console du gestionnaire de packages NuGet :

Install-Package IronPdf
Install-Package IronPdf

Exemple : Convertir une URL en PDF à l'aide de IronPDF

IronPDF fournit une API simple et directe pour la conversionURL vers des PDF. En voici un exemple :

using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");

Fichier PDF de sortie

PDFsharp vs QuestPDF(Comparaison Approfondie des Bibliothèques PDF en C#) : Figure 4

L'exemple de code ci-dessus démontre comment IronPDF peut facilement convertir le contenu d'une URL en PDF avec seulement quelques lignes de code. Comme vous pouvez le voir, non seulement cela a converti le HTML, mais cela a également converti le style CSS et les mises en page, garantissant que le PDF de sortie reste fidèle au formatage original. À travers l'utilisation de laMoteur de rendu ChromePdfRendererIronPDF produit des documents PDF à la perfection pixel qui ne perdent aucune qualité du contenu original lors du processus de conversion.

Comme on le voit ici, IronPDF est un choix solide pour la conversion HTML en PDF, ainsi que pour la conversion d'autres types de documents en PDF. Il gère des travaux de conversion de haute qualité dans un bloc de code concis et facile à mettre en œuvre.

Analyse Détaillée

Facilité d'utilisation

PDFsharp est simple et facile à utiliser, ce qui en fait un excellent choix pour les débutants ou les développeurs ayant des besoins PDF de base. Son approche procédurale permet une configuration et une mise en œuvre rapides pour des tâches telles que l'ajout de texte, de formes ou d'images à un PDF. Cependant, elle nécessite une bibliothèque externe pour gérer les tâches de conversion de HTML et d'URL en PDF.

QuestPDF, quant à lui, offre une approche plus moderne avec son API fluide. Les développeurs ayant une expérience en conception web ou UI trouveront cela intuitif, mais les nouveaux venus peuvent rencontrer une légère courbe d'apprentissage en s'habituant à la philosophie de conception centrée sur la disposition. Mais encore une fois, il manque les outils intégrés pour gérer les conversions HTML en PDF.

IronPDF offre l'expérience la plus simple pour la conversion de HTML en PDF et des fonctionnalités PDF avancées. Son API intuitive réduit le temps de mise en œuvre et offre une documentation et des exemples robustes. IronPDF peut gérer la conversion de nombreux types de documents différents en PDF, comme l'exemple de l'URL en PDF que nous avons examiné dans cet article, le tout sans aucune perte de qualité du document.

Performance

La performance est un facteur critique, surtout pour les applications qui doivent générer dynamiquement des PDFs. PDFsharp est adéquat pour les documents petits et simples, mais a du mal avec les mises en page à grande échelle ou complexes.

QuestPDF excelle dans la création de documents dynamiques et visuellement attrayants. Il est optimisé pour gérer les mises en page structurées avec une grande efficacité.

IronPDF équilibre exceptionnellement bien performance et fonctionnalité, surtout pour les applications nécessitant le rendu HTML, le support CSS et JavaScript. Il est également très performant pour gérer facilement les tâches PDF de niveau entreprise.

Résumé de la comparaison

  • PDFsharp est une bibliothèque légère et open-source idéale pour les tâches de création et d'édition basiques de PDF. Il est idéal pour les petits projets mais manque de prise en charge des mises en page modernes et des fonctionnalités avancées.
  • QuestPDF excelle dans la génération de PDF dynamiques, complexes et visuellement attrayants grâce à son API fluide. Cependant, il se concentre exclusivement sur la génération de PDF et ne prend pas en charge l'édition de documents existants.
  • IronPDF offre l'ensemble de fonctionnalités le plus complet, y compris la conversion HTML en PDF intégrée, l'OCR et des options de sécurité avancées. Bien qu'il nécessite une licence commerciale, sa fonctionnalité en fait un choix de premier plan pour les applications d'entreprise et professionnelles.

Conclusion

Choisir la bonne bibliothèque PDF pour votre projet .NET dépend de vos exigences spécifiques. Si vous avez besoin d'un outil léger et open-source pour des tâches PDF de base,PDFsharpest une option solide. Pour créer des documents dynamiques et visuellement attrayants,QuestPDFse distingue par son approche moderne.

Toutefois, si vous avez besoin de fonctionnalités avancées, d'une conversion HTML en PDF fluide et de capacités de niveau entreprise,IronPDFce qu'il a à offrir.

En comprenant les forces et les limites de chaque bibliothèque, vous pouvez prendre une décision éclairée qui correspond aux besoins de votre projet.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
Explorez les meilleures alternatives à PDFsharp pour la conversion de PDF en image
SUIVANT >
PDFsharp Ajouter des numéros de page au PDF VS IronPDF (Exemple)