HTML en PDF en C# pour les développeurs .NET (Le guide ultime)
Introduction
Dans le monde actuel, dominé par le web, la capacité de convertir du contenu HTML en documents PDF (Portable Document Format) est une fonctionnalité essentielle pour de nombreuses applications. Que ce soit pour générer des fichiers PDF à partir de rapports, de factures ou pour archiver du contenu Web, la conversion HTML vers PDF simplifie les flux de travail et garantit une mise en forme cohérente des PDF de haute qualité. Des bibliothèques comme IronPDF offrent une solution conviviale pour les développeurs afin de gérer cette conversion, prenant en charge le contenu dynamique, les formulaires HTML et le rendu précis du CSS et du JavaScript .
Pour les développeurs .NET, l'utilisation du bon convertisseur HTML vers PDF a un impact sur l'efficacité, la simplicité du code et la qualité de la génération des PDF. Les bibliothèques modernes permettent aux développeurs de convertir directement des chaînes HTML, des pages Web entières ou des fichiers HTML en documents PDF rendus en quelques lignes de code seulement, permettant ainsi la création de documents dynamiques, d'en-têtes personnalisés et de versions imprimables du contenu Web.
Ce que vous apprendrez
Dans ce guide, vous apprendrez à convertir du HTML en PDF en C# à l'aide de plusieurs bibliothèques et explorerez leurs fonctionnalités de conversion PDF, notamment la manipulation de documents PDF, de formulaires HTML, de marges personnalisées et de PDF sécurisés. Les sujets que nous aborderons dans cet article sont les suivants :
- Pourquoi comparer les outils HTML et PDF ?
- IronPDF : Conversion HTML vers PDF
- Aspose : Conversion HTML vers PDF
- iText 9 : Conversion HTML vers PDF
- wkhtmltopdf : Conversion HTML vers PDF
- PuppeteerSharp : Conversion HTML vers PDF
- Conclusion Pourquoi choisir IronPDF ?
À la fin de cet article, vous comprendrez pourquoi IronPDF se distingue comme un convertisseur HTML vers PDF convivial et efficace pour les développeurs. N'hésitez pas à consulter nos autres guides comparatifs, où nous analysons plus en détail comment IronPDF se compare à Aspose.PDF , iText 9 , wkhtmltopdf et PuppeteerSharp pour déterminer lequel convient le mieux à votre projet et pourquoi IronPDF se distingue.
Pourquoi comparer les outils HTML et PDF ?
Choisir l'outil de conversion HTML vers PDF approprié est essentiel pour garantir que votre application réponde aux exigences de performance, de qualité et de coût. Face aux nombreuses options disponibles, offrant chacune des capacités de conversion PDF différentes, une comparaison approfondie permet de prendre une décision éclairée. Voici les principaux critères d'évaluation à prendre en compte :
- Complexité d'intégration : facilité d'intégration de la bibliothèque avec vos projets .NET existants, par exemple via le gestionnaire de packages NuGet pour une installation simple et une configuration simplifiée de l'onglet d'intégration de l'API.
- Simplicité du code : La facilité d'écriture et de maintenance du code source, y compris des exemples de code minimaux comme quelques lignes seulement pour convertir des chaînes HTML ou des pages Web entières en documents PDF générés.
- Précision du rendu : capacité du moteur de rendu à gérer avec précision le code HTML, l'exécution JavaScript, l'impression CSS, les formulaires HTML et autres contenus dynamiques tout en produisant des PDF de haute qualité.
- Performances à grande échelle : Capacité du convertisseur PDF à fonctionner sous forte charge lors de la génération de fichiers PDF à partir de plusieurs pages HTML ou de contenu dynamique.
- Licences et rentabilité : Les modèles de tarification, tels que les licences commerciales, et leur adéquation au budget de votre projet.
En évaluant ces facteurs, les développeurs peuvent choisir un outil qui correspond à la fois à leurs exigences techniques et à leurs contraintes financières, qu'ils travaillent avec des projets .NET Core ou .NET Framework dans Visual Studio.
IronPDF : Conversion HTML vers PDF
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 1
IronPDF est une bibliothèque .NET complète conçue spécifiquement pour les développeurs. Il offre des méthodes prêtes à l'emploi pour convertir des chaînes HTML , des fichiers locaux et des URL dynamiques en PDF avec une configuration minimale. Son moteur de rendu basé sur Chrome garantit une grande précision et prend en charge CSS et JavaScript. IronPDF est un logiciel commercial qui offre un support technique performant et une API simple d'utilisation.
Chaîne HTML convertie en PDF
Convertir du HTML en PDF est simple avec IronPDF. Cette approche est idéale pour la génération de contenu dynamique ou de petits extraits HTML.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Document PDF généré
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 2
Explication :
ChromePdfRenderer: La classeChromePdfRendererest l'outil principal pour convertir du HTML en PDF dans IronPDF. Il est préconfiguré pour gérer la plupart des cas d'utilisation avec une configuration minimale.RenderHtmlAsPdf: Cette méthode prend une chaîne HTML en entrée et génère un document PDF.SaveAs: Le PDF généré est enregistré à l'emplacement spécifié (output.pdf).
Fichier HTML local converti en PDF
Pour les applications qui ont besoin de convertir un fichier HTML local (avec des ressources externes comme du CSS ou du JavaScript), IronPDF simplifie la tâche.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
pdf.SaveAs("report.pdf")
End Sub
End Class
Fichier HTML d'entrée
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 3
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 4
Explication :
- RenderHtmlFileAsPdf : Prend un fichier HTML local et le convertit en PDF.
- Gère automatiquement les ressources liées, telles que les fichiers CSS et JavaScript externes.
URL en PDF
IronPDF est particulièrement performant pour la conversion de contenu web dynamique provenant d' URL , y compris les pages utilisant JavaScript.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 5
Explication :
- RenderUrlAsPdf : Récupère le contenu de l'URL, y compris les éléments rendus en JavaScript, et le convertit en PDF.
Verdict / Quand l'utiliser
IronPDF est idéal pour les développeurs qui ont besoin d'une intégration API facile, d'un minimum de code et d'une prise en charge de la manipulation de documents PDF, de la création de documents dynamiques, de formulaires HTML, d'en-têtes personnalisés et de versions imprimables de contenu Web. Idéal pour les projets .NET Core ou .NET Framework dans Visual Studio.
Aspose : Conversion HTML vers PDF
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 6
Aspose.PDF est une autre bibliothèque puissante pour la manipulation de fichiers PDF, prenant en charge la conversion de HTML en PDF. Voyons comment Aspose gère chaque scénario de conversion :
Chaîne HTML convertie en PDF
Aspose nécessite une configuration un peu plus poussée lors de la conversion de chaînes HTML par rapport à IronPDF.
Example:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
Imports Aspose.Html
Imports Aspose.Html.Saving
Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 7
Explication :
- Document doc : Crée un nouveau document pour enregistrer la chaîne HTML convertie.
- Page page : Cette ligne ajoute une nouvelle page au document vide que nous avons créé.
- HtmlFragment htmlFragment : Il s'agit de la chaîne HTML que nous convertissons.
- page.getParagraphs().Add(htmlFragment) : Ajoute le code HTML au document.
- doc.Save : Enregistre le document avec son contenu HTML au format PDF.
Fichier HTML local converti en PDF
Aspose permet également de convertir des fichiers HTML locaux en PDF, mais cela nécessite plus de configuration qu'avec IronPDF.
Example:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving
Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")
Saisir le code HTML :
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 8
Output:
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 9
Explication :
- var document = new HTMLDocument("document.html"): Charge le fichier HTML.
- var options : Crée un nouvel objet PdfSaveOptions.
- Converter.ConvertHTML() : Convertit le HTML en PDF.
URL en PDF
Aspose offre des fonctionnalités similaires pour les URL, mais nécessite une configuration supplémentaire.
Example:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 10
Explication :
- La variable
dataDircontient le répertoire dans lequel le PDF généré sera enregistré. - Une
WebRequestest créée pour accéder à l'URL de la page principale de Wikipédia, et les identifiants par défaut sont utilisés pour cette requête. - La méthode
GetResponse()envoie la requête et récupère la réponse sous forme de HttpWebResponse. - Un flux est obtenu à partir de la réponse, et un StreamReader lit l'intégralité du contenu HTML de la page dans la chaîne
responseFromServer. - Le contenu HTML de
responseFromServerest converti en un tableau d'octets puis chargé dans unMemoryStream. HtmlLoadOptionsest utilisé pour spécifier l'URL de base des liens relatifs et d'autres paramètres.- Un
Aspose.Pdf.Documentest créé à partir du flux mémoire contenant le code HTML, et le document est enregistré au format PDF dans le répertoire spécifié.
Verdict / Quand l'utiliser
Aspose.PDF est idéal pour les projets d'entreprise nécessitant des fonctions avancées de manipulation et de conversion de fichiers PDF. Il est puissant, mais moins adapté aux tâches rapides de conversion HTML vers PDF.
iText 9 : Conversion HTML vers PDF
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 11
iText 9 est la dernière version de la bibliothèque iText PDF, offrant des fonctionnalités améliorées pour la génération et la manipulation de documents PDF dans les applications .NET. Elle introduit une API plus simplifiée et extensible, améliorant les performances et offrant une meilleure prise en charge des normes PDF modernes.
Chaîne HTML convertie en PDF
Voici un exemple simple de conversion d'une chaîne HTML en document PDF à l'aide d'iText 9.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 12
Fichier HTML local converti en PDF
iText 9 peut convertir les fichiers HTML en PDF grâce à la classe HtmlConverter.ConvertToPdf.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 13
Explication :
- HtmlConverter : Convertit directement un fichier HTML en PDF.
URL en PDF
iText7 prend également en charge la conversion de contenu à partir d'URL.
Example:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 14
Explication :
- HttpClient.GetStringAsync(url) : Télécharge le contenu HTML réel à partir de l'URL.
- HtmlConverter.ConvertToPdf(htmlContent, …): Convertit la chaîne HTML récupérée en un PDF rendu.
Verdict / Quand l'utiliser
iText 9 convient aux développeurs qui ont besoin d'une solution robuste et de qualité professionnelle pour la création, la manipulation et la conversion de fichiers PDF de HTML en PDF. Il fonctionne bien lorsque vous avez besoin d'un contrôle précis sur le PDF généré, d'une intégration avec les flux de travail iText existants ou de fonctionnalités PDF avancées telles que les signatures et les formulaires numériques. Cependant, pour les tâches simples de conversion HTML vers PDF, iText 9 est plus lourd et plus complexe que des bibliothèques rationalisées comme IronPDF.
wkhtmltopdf : Conversion HTML vers PDF
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 15
État des archives et de la maintenance
Il est important de noter que wkhtmltopdf n'est plus activement maintenu . Son dépôt GitHub a été officiellement archivé en janvier 2023 et marqué en lecture seule, ce qui signifie qu'aucune mise à jour, correction de bug ou correctif de sécurité ne sera appliquée.
Conséquences pour les développeurs : Bien que wkhtmltopdf puisse encore être efficace pour des cas d'utilisation très basiques, son statut non maintenu et son moteur de rendu obsolète en font un choix risqué, en particulier pour les environnements de production ou les applications gérant du contenu HTML dynamique ou externe.
wkhtmltopdf est un outil en ligne de commande qui convertit les fichiers HTML en PDF en utilisant le rendu Webkit. Voici comment cela fonctionne dans différents scénarios :
Chaîne HTML convertie en PDF
wkhtmltopdf nécessite la conversion des chaînes HTML en les écrivant d'abord dans un fichier.
Example:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
Shared Sub Main(ByVal args() As String)
' HTML string to be converted to PDF
Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML string to temporary file
Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempHtmlFile, html)
' Set output PDF path
Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
' Clean up the temporary HTML file
File.Delete(tempHtmlFile)
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End Class
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 16
Explication :
- wkhtmltopdf nécessite un fichier d'entrée, nous écrivons donc d'abord la chaîne HTML dans un fichier temporaire (temp.html). Nous utilisons ensuite la classe Process pour exécuter la commande wkhtmltopdf , en passant comme arguments le chemin d'accès au fichier HTML temporaire et le chemin d'accès au fichier PDF de sortie souhaité. Après la conversion, nous supprimons le fichier HTML temporaire pour effectuer le nettoyage.
Fichier HTML local converti en PDF
Pour convertir un fichier HTML local en PDF à l'aide de wkhtmltopdf , vous pouvez indiquer directement le chemin d'accès au fichier HTML.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 17
Explication :
Cet exemple indique simplement le chemin d'accès au fichier HTML local (template.html) et le chemin de sortie du PDF.
- wkhtmltopdf gère directement les fichiers locaux, ce qui rend la commande simple.
URL en PDF
Convertir une URL en PDF est facile avec wkhtmltopdf . Il suffit de transmettre directement l'URL à la commande.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 18
Explication :
- Dans cet exemple,
wkhtmltopdfaccepte directement les URL en entrée. - L'URL est transmise comme argument à
wkhtmltopdf, et le résultat est enregistré au format PDF à l'emplacement spécifié.
PuppeteerSharp : Conversion HTML vers PDF
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 19
PuppeteerSharp est un wrapper .NET pour Puppeteer de Google, permettant de contrôler Chrome/Chromium en mode headless. Il excelle dans le rendu de pages dynamiques riches en JavaScript, mais nécessite le téléchargement et la gestion d'une instance Chromium, ce qui représente une surcharge supplémentaire. Il est distribué sous licence Apache 2.0.
Chaîne HTML convertie en PDF
Puppeteer est conçu pour afficher des pages complètes ; la conversion d'une chaîne HTML nécessite donc de l'écrire dans un fichier ou de l'afficher directement dans un navigateur.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
! Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 20
Explication :
- Puppeteer.LaunchAsync : Lance une nouvelle instance de Chromium en mode sans interface graphique.
- page.SetContentAsync : Charge la chaîne HTML dans la page du navigateur.
- page.PdfAsync : Convertit le code HTML chargé en PDF et l'enregistre dans un fichier.
Fichier HTML local converti en PDF
Pour convertir un fichier HTML local en PDF à l'aide de PuppeteerSharp, vous pouvez charger le fichier dans un navigateur sans interface graphique et générer le PDF.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Load the local HTML file
Await page.GoToAsync("file:///path/to/your/template.html")
' Save the page as a PDF
Await page.PdfAsync("html-file-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End Class
Output
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 21
Explication :
- page.GoToAsync : Charge le fichier HTML local (assurez-vous d'utiliser le chemin
[file://]()correct). - page.PdfAsync : Convertit le contenu du fichier HTML local en PDF.
URL en PDF
La conversion d'une URL en PDF est l'une des fonctionnalités principales de PuppeteerSharp, car il peut gérer des pages complexes grâce à JavaScript.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Navigate to the URL
Await page.GoToAsync("https://example.com")
' Save the page as a PDF
Await page.PdfAsync("url-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End Class
Output
Conversion HTML vers PDF en C# pour les développeurs .NET (Le guide ultime) : Figure 22
Explication :
- page.GoToAsync : Navigue vers l'URL spécifiée.
- page.PdfAsync : Convertit la page Web à l'URL en un PDF et l'enregistre.
Verdict / Quand l'utiliser
PuppeteerSharp est idéal lorsque vous avez besoin d'un rendu au pixel près pour les applications web modernes riches en JavaScript. Il est plus complexe qu'IronPDF, mais excelle dans la gestion du contenu web dynamique.
Pourquoi choisir IronPDF ?
IronPDF se distingue par sa facilité d'utilisation, sa flexibilité et son intégration transparente avec les applications .NET. Il est simple à mettre en œuvre, prend en charge le rendu HTML, CSS et JavaScript, et ne nécessite aucune configuration supplémentaire ni dépendance externe. Au-delà de la conversion HTML vers PDF, IronPDF offre une vaste gamme de fonctionnalités pour créer des documents PDF à partir de différents types de fichiers, modifier et ajouter du contenu à des documents PDF existants, ajouter des filigranes, sécuriser les fichiers PDF , et bien plus encore ! Pour découvrir davantage cette bibliothèque en action, n'hésitez pas à consulter les guides pratiques qui présentent chacune de ses fonctionnalités.
Conclusion
En matière de conversion de fichiers HTML en PDF en C#, plusieurs outils puissants sont disponibles, chacun offrant des fonctionnalités et des capacités uniques. IronPDF , Aspose , iText 9 , wkhtmltopdf et PuppeteerSharp offrent tous des solutions robustes pour transformer du contenu HTML en documents PDF de qualité professionnelle. Cependant, le choix de l'outil adapté à votre projet dépend de facteurs tels que la facilité d'intégration, la prise en charge du contenu dynamique, les performances et la flexibilité.
| Outil | Chaîne HTML vers PDF | Fichier HTML vers PDF | URL en PDF | Remarques |
|---|---|---|---|---|
IronPDF |
La RenderHtmlAsPdf simplifie la conversion des chaînes HTML. Facile à utiliser, elle s'intègre parfaitement aux applications .NET. |
Utilise RenderHtmlFileAsPdf , gère automatiquement les ressources liées (CSS, JS). |
Utilise RenderUrlAsPdf , prend en charge les pages riches en JavaScript et le contenu dynamique. |
Entièrement intégré à .NET, il est idéal pour les développeurs .NET. Il prend en charge les chaînes HTML, les fichiers et les URL. |
![]() Aspose |
Nécessite une configuration plus poussée. Utilise HtmlFragment dans un objet Document pour convertir les chaînes HTML. |
Nécessite HtmlDocument et PdfSaveOptions pour la conversion locale de fichiers HTML. Requiert une configuration plus poussée qu'IronPDF. |
Nécessite une configuration supplémentaire utilisant WebRequest pour récupérer le contenu avant la conversion avec HtmlLoadOptions .
|
Robuste pour diverses manipulations de documents, mais sa configuration peut être plus complexe. Convient aux besoins PDF plus élaborés. |
![]() iText7 |
Utilise HtmlConverter.ConvertToPdf pour convertir les chaînes HTML en PDF. |
Utilise HtmlConverter.ConvertToPdf pour convertir les fichiers HTML locaux en PDF. |
Similaire à la gestion des fichiers locaux, utilise HtmlConverter.ConvertToPdf . |
Idéal pour les développeurs qui ont besoin d'un contrôle plus poussé sur la manipulation des PDF, au-delà de la simple conversion HTML vers PDF. |
![]() wkhtmltopdf |
Convertit les chaînes HTML en les écrivant d'abord dans un fichier. Utilise l'outil en ligne de commande pour générer les PDF. | Convertit directement les fichiers HTML locaux en PDF en indiquant les chemins d'accès aux fichiers. | Convertit directement les URL en PDF en passant l'URL à l'outil en ligne de commande. | Principalement un outil en ligne de commande, son intégration dans .NET peut nécessiter des étapes supplémentaires. Idéal pour les conversions simples. |
![]() Marionnettiste Sharp |
Utilise page.SetContentAsync pour charger la chaîne HTML, puis page.PdfAsync pour générer un PDF. |
Charge un fichier HTML local via page.GoToAsync puis le convertit en PDF. |
Charge une URL et la convertit en PDF à l'aide de page.GoToAsync et page.PdfAsync . |
Idéal pour les pages dynamiques, notamment celles contenant beaucoup de JavaScript. Nécessite le téléchargement et le lancement de Chromium. |
-
IronPDF se distingue par sa simplicité, son intégration directe avec .NET et sa capacité à gérer des fichiers HTML complexes , y compris les pages rendues en JavaScript. C'est la solution idéale pour les développeurs à la recherche d'une solution facile à utiliser et nécessitant une configuration minimale.
-
Aspose offre de nombreuses fonctionnalités de manipulation de fichiers PDF, mais ses capacités de conversion HTML vers PDF nécessitent une configuration plus poussée, notamment pour la gestion des fichiers locaux et des ressources externes.
-
iText 9 offre une base solide pour ceux qui souhaitent créer des documents PDF, même s'il peut nécessiter un codage supplémentaire pour convertir du HTML en PDF, notamment pour le contenu dynamique. C'est un excellent choix pour les projets nécessitant une manipulation personnalisée des fichiers PDF.
-
wkhtmltopdf est idéal pour la conversion HTML vers PDF de base avec une interface en ligne de commande, mais il manque de l'intégration et de la flexibilité d'une bibliothèque .NET complète.
- PuppeteerSharp , tirant parti de Chrome en mode headless, est l'outil incontournable pour le rendu de pages web complexes et dynamiques et leur conversion en PDF, notamment lorsqu'il s'agit de contenu riche en JavaScript.
Pour la plupart des développeurs .NET à la recherche d'une solution tout-en-un et simple d'utilisation, IronPDF mérite d'être essayé dès aujourd'hui pour découvrir par vous-même ses puissantes fonctionnalités. De la génération de nouveaux documents PDF à la modification de PDF existants, découvrez par vous-même toute la gamme des fonctionnalités d'IronPDF. Il vous suffit d'installer IronPDF et d'utiliser la version d'essai gratuite pour le tester vous-même. Découvrez comment il peut optimiser vos flux de travail PDF dès aujourd'hui.
En définitive, l'outil idéal dépend de vos besoins spécifiques, mais grâce aux options présentées ici, vous êtes bien armé pour trouver la solution parfaite pour votre projet.
Veuillez noter : Aspose, iText, wkhtmltopdf et PuppeteerSharp sont des marques déposées de leurs propriétaires respectifs. Ce site n'est affilié à, approuvé ou sponsorisé par Aspose, iText, wkhtmltopdf ou Puppeteer. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont fournies à titre informatif seulement et sont basées sur des informations publiques disponibles au moment de la rédaction.



