using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
PDFsharp vs QuestPDF (Comparaison approfondie de bibliothèques PDF C#)
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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'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'.");
}
}
}
Imports System
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp
Public Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
' Ensure proper encoding support
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
Dim url As String = "https://www.apple.com"
' Fetch HTML content from the URL
Using client As New HttpClient()
Dim htmlContent As String = Await client.GetStringAsync(url)
' Generate PDF from the fetched HTML content
Dim pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4)
pdf.Save("output.pdf")
Console.WriteLine("PDF created successfully as 'output.pdf'.")
End Using
End Function
End Class
Fichier PDF de sortie
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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'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'.");
}
}
}
Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
Imports HtmlAgilityPack
Imports QuestPDF.Fluent
Imports QuestPDF.Helpers
Imports QuestPDF.Infrastructure
Public Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
QuestPDF.Settings.License = LicenseType.Community
Dim url As String = "https://www.apple.com"
' Fetch HTML content from the URL
Using client As New HttpClient()
Dim htmlContent As String = Await client.GetStringAsync(url)
' Parse the HTML content using HtmlAgilityPack
Dim htmlDoc = New HtmlDocument()
htmlDoc.LoadHtml(htmlContent)
' Extract meaningful content (e.g., text inside <body>)
Dim bodyContent = If(htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText, "No content found")
' Generate PDF using QuestPDF
Document.Create(Sub(container)
container.Page(Sub(page)
page.Size(PageSizes.A4)
page.Margin(20)
page.Content().Text(bodyContent)
End Sub)
End Sub).GeneratePdf("output.pdf")
Console.WriteLine("PDF created successfully as 'output.pdf'.")
End Using
End Function
End Class
Fichier PDF de sortie
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.
É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 :
Ouvrez votre projet dans Visual Studio.
Cliquez avec le bouton droit de la souris sur le projet dans l'explorateur de solutions et sélectionnez "Manage NuGet Packages"
Recherchez "IronPDF" et cliquez sur "Installer".
Utilisation de la console du gestionnaire de packages NuGet :
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'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");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")
pdf.SaveAs("url.pdf")
Fichier PDF de sortie
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 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)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier