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");
Comment convertir du HTML en PDF C# sans bibliothèque
Kannapat Udonpant
avril 3, 2025
Partager:
Introduction
Lorsqu'il s'agit de convertir du HTML en PDF en C#, les développeurs pourraient envisager d'utiliser les fonctionnalités natives de .NET sans s'appuyer sur des bibliothèques externes. Bien que cette approche puisse être viable dans certains scénarios, elle s'accompagne de ses propres avantages et défis. Cet article explorera le processus, les avantages et les inconvénients, et discutera pourquoi une bibliothèque comme IronPDF pourrait être une meilleure option.
Comment ça marche
En utilisant les outils intégrés de .NET, vous pouvez réaliser la conversion HTML en PDF en rendant le contenu HTML et en l'imprimant à l'aide du contrôle WebBrowser et de la classe PrintDocument. Voici un flux de travail simplifié :
Écrire le contenu HTML dans un fichier temporaire.
Charger le HTML dans un contrôle WebBrowser pour le rendu.
Utilisez la classe PrintDocument pour créer un travail d'impression qui génère le contenu rendu.
Bien que cette approche évite les dépendances externes, elle implique de travailler avec des composants de bas niveau et de définir manuellement la logique d'impression.
Si vous souhaitez convertir du HTML en PDF en C# sans utiliser de bibliothèques externes, vous pouvez utiliser les fonctionnalités intégrées de .NET telles que System.IO et System.Drawing.Printing pour rendre le HTML, puis créer un PDF. Voici un exemple de base pour vous aider à démarrer :
Comment convertir du HTML en PDF C# sans bibliothèque
Ajouter depuis PixabayTéléverser
ou faites glisser et déposez une image ici
Ajouter un texte alternatif à l'image
using System;
using System.IO;
using System.Windows.Forms; // You need to add a reference to System.Windows.Forms
using System.Drawing.Printing;
class Program
{
[STAThread] // Required for using WebBrowser control
static void Main()
{
// HTML content
string htmlContent = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML content to a temporary file
string tempFilePath = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempFilePath, htmlContent);
// Create WebBrowser to render HTML
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentCompleted += (sender, e) =>
{
// Print the document to a file
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += (s, args) =>
{
args.Graphics.DrawString(htmlContent, new Font("Arial", 12), Brushes.Black, new PointF(100, 100));
};
// Save as PDF (or use PrintDialog for physical printing)
printDoc.PrintController = new StandardPrintController(); // Silent print
printDoc.Print(); // You'd need to replace this with PDF creation logic.
Application.ExitThread(); // Close the application
};
// Load the HTML file
webBrowser.Url = new Uri(tempFilePath);
Application.Run();
}
}
using System;
using System.IO;
using System.Windows.Forms; // You need to add a reference to System.Windows.Forms
using System.Drawing.Printing;
class Program
{
[STAThread] // Required for using WebBrowser control
static void Main()
{
// HTML content
string htmlContent = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML content to a temporary file
string tempFilePath = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempFilePath, htmlContent);
// Create WebBrowser to render HTML
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentCompleted += (sender, e) =>
{
// Print the document to a file
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += (s, args) =>
{
args.Graphics.DrawString(htmlContent, new Font("Arial", 12), Brushes.Black, new PointF(100, 100));
};
// Save as PDF (or use PrintDialog for physical printing)
printDoc.PrintController = new StandardPrintController(); // Silent print
printDoc.Print(); // You'd need to replace this with PDF creation logic.
Application.ExitThread(); // Close the application
};
// Load the HTML file
webBrowser.Url = new Uri(tempFilePath);
Application.Run();
}
}
Imports System
Imports System.IO
Imports System.Windows.Forms ' You need to add a reference to System.Windows.Forms
Imports System.Drawing.Printing
Friend Class Program
<STAThread>
Shared Sub Main()
' HTML content
Dim htmlContent As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML content to a temporary file
Dim tempFilePath As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempFilePath, htmlContent)
' Create WebBrowser to render HTML
Dim webBrowser As New WebBrowser()
AddHandler webBrowser.DocumentCompleted, Sub(sender, e)
' Print the document to a file
Dim printDoc As New PrintDocument()
AddHandler printDoc.PrintPage, Sub(s, args)
args.Graphics.DrawString(htmlContent, New Font("Arial", 12), Brushes.Black, New PointF(100, 100))
End Sub
' Save as PDF (or use PrintDialog for physical printing)
printDoc.PrintController = New StandardPrintController() ' Silent print
printDoc.Print() ' You'd need to replace this with PDF creation logic.
Application.ExitThread() ' Close the application
End Sub
' Load the HTML file
webBrowser.Url = New Uri(tempFilePath)
Application.Run()
End Sub
End Class
$vbLabelText $csharpLabel
Explication du code
Le contrôle WebBrowser est utilisé pour rendre le HTML.
La classe PrintDocument est utilisée pour définir le comportement d'impression.
Cet exemple ne crée pas directement un PDF; vous devrez l'étendre pour intégrer la logique de création de PDF brute, comme dessiner manuellement des textes et des formes, ou travailler avec des flux.
Cette approche est limitée et peut devenir complexe pour des documents HTML volumineux ou stylisés. Si votre cas d'utilisation le permet, utiliser une bibliothèque comme IronPDF est généralement beaucoup plus efficace et riche en fonctionnalités.
Avantages et inconvénients de l'utilisation des fonctionnalités intégrées de .NET
Pour
Aucune dépendance externe : Éviter les bibliothèques externes peut réduire la complexité de la gestion des dépendances tierces dans votre projet.
Gratuit : Étant donné que cette méthode utilise uniquement des composants natifs .NET, il n'y a pas de frais de licence ni de coûts supplémentaires.
Contrôle amélioré : Vous avez un contrôle total sur la manière dont le contenu est rendu et imprimé, ce qui permet une gestion personnalisée.
Cons
Fonctionnalités Limitées : Les outils .NET intégrés n'ont pas la capacité de rendre avec précision des HTML, CSS ou JavaScript complexes. Les mises en page avancées, les conceptions réactives ou le contenu dynamique peuvent ne pas être pris en charge.
Mise en œuvre chronophage : Vous devez écrire du code personnalisé pour gérer le rendu, la pagination et la création de PDF, ce qui pourrait entraîner des coûts de développement plus élevés.
Faible évolutivité : Pour les applications à grande échelle ou à haute performance, cette approche peut être inefficace et sujette à des goulots d'étranglement.
Pas de prise en charge native des PDF : Le flux de travail ne crée pas directement de PDF ; vous auriez besoin de mettre en œuvre une logique personnalisée pour générer un fichier PDF à partir de la sortie d'impression.
Introduction à IronPDF
Ajouter depuis PixabayTéléverser
ou faites glisser et déposez une image ici
Ajouter un texte alternatif à l'image
IronPDF est une bibliothèque .NET qui permet aux développeurs de convertir facilement du HTML en PDF. Il prend en charge un large éventail de fonctionnalités, y compris CSS, JavaScript, et même les images intégrées. Avec IronPDF, vous pouvez créer des PDF qui ressemblent exactement à vos pages web HTML, assurant une transition fluide entre les formats. Cette bibliothèque est particulièrement utile pour les applications web qui ont besoin de générer des documents PDF dynamiques à la volée.
IronPDF permet aux développeurs d'intégrer de manière transparente la fonctionnalité PDF dans les applications .NET sans avoir besoin de gérer manuellement les structures de fichiers PDF. IronPDF utilise le moteur de rendu basé sur Chrome pour convertir des pages HTML (y compris le CSS complexe, JavaScript, et images) en documents PDF bien structurés. Il peut être utilisé pour générer des rapports, des factures, des eBooks ou tout type de document devant être présenté au format PDF.
IronPDF est polyvalent, offrant non seulement la fonctionnalité de rendre des PDFs, mais aussi une large gamme d'options de manipulation de PDF telles que l'édition, la gestion de formulaires, le chiffrement, et plus encore.
Principales caractéristiques d'IronPDF
Conversion HTML en PDF
Rendu HTML : IronPDF peut convertir des documents au format fichier HTML ou des pages web (y compris HTML avec CSS, images et JavaScript) directement en document PDF. Il peut également convertir en utilisant un modèle HTML. Ceci est idéal pour générer des PDF à partir de contenu web dynamique.
Prise en charge du HTML / CSS moderne : IronPDF gère le HTML5, CSS3 et JavaScript modernes, garantissant que votre contenu web est rendu avec précision en tant que PDF, tout en préservant la mise en page, les polices et les éléments interactifs.
Rendu Avancé : Il utilise le moteur de rendu de Chrome (via Chromium) pour une génération de PDF précise et de haute qualité, le rendant plus fiable que de nombreuses autres bibliothèques HTML vers PDF.
URL du site Web en PDF : IronPDF peut prendre l'URL chaîne du site Web comme entrée et convertir en PDF.
En-têtes et pieds de page personnalisés
IronPDF permet aux développeurs d'ajouter des en-têtes et des pieds de page personnalisés aux documents PDF, qui peuvent inclure du contenu dynamique tel que des numéros de page, le titre du document ou du texte personnalisé.
Les en-têtes et les pieds de page peuvent être ajoutés à des pages individuelles, ou comme éléments constants sur l'ensemble du document.
Support de JavaScript dans les PDFs
IronPDF permet l'exécution de JavaScript dans le contenu HTML avant la génération du PDF. Cela permet le rendu de contenu dynamique, comme les calculs de formulaire ou l'interactivité dans les PDF générés.
JavaScript est utile pour créer des PDF à partir de pages web dynamiques ou générer des rapports nécessitant une logique côté client.
Éditer des PDF existants
IronPDF fournit la possibilité de modifier des PDF existants. Vous pouvez modifier le texte, les images et ajouter des annotations aux fichiers PDF existants. Cette fonctionnalité est utile pour filigraner des documents, ajouter des signatures ou mettre à jour le contenu des fichiers PDF.
L'extraction et la modification de texte vous permettent de manipuler le contenu d'un document PDF de manière programmatique.
Fusionner et Diviser des PDFs
IronPDF vous permet de fusionner plusieurs fichiers PDF en un seul document ou de diviser un grand PDF en fichiers plus petits. C'est idéal pour les flux de travail où les documents doivent être combinés ou décomposés en parties plus gérables.
Prise en charge des formulaires interactifs
Vous pouvez créer, remplir et manipuler des formulaires PDF en utilisant IronPDF. Il offre un support complet pour les formulaires interactifs (comme les champs de texte, les cases à cocher et les boutons radio) et vous permet de pré-remplir les formulaires avec des données.
IronPDF permet également d'extraire les données des formulaires à partir de PDF existants, facilitant ainsi la lecture et le traitement des données des formulaires de manière programmatique.
Manipulation de Page
IronPDF propose diverses méthodes pour manipuler des pages individuelles au sein d'un document PDF, telles que la rotation, la suppression ou le réarrangement des pages. Cela aide à personnaliser la structure du document final.
Vous pouvez également ajouter de nouvelles pages à un PDF existant ou supprimer les pages indésirables.
Sécurité et Chiffrement
IronPDF vous permet d'appliquer une protection par mot de passe et un cryptage aux PDF, garantissant ainsi la sécurité de vos documents. Vous pouvez définir des autorisations utilisateur, telles que l’interdiction d’imprimer, de copier ou de modifier le PDF.
Les signatures numériques peuvent également être ajoutées aux PDF pour vérifier l'authenticité, offrant ainsi une couche de sécurité pour les documents sensibles.
Filigrane et Marque
Ajouter des filigranes aux documents PDF est facile avec IronPDF. Vous pouvez superposer du texte ou des images en tant que filigranes sur des pages, offrant ainsi une protection contre la copie ou la distribution non autorisée de vos documents.
Cette fonctionnalité est souvent utilisée pour le branding, où le logo ou le texte doit apparaître de manière cohérente sur toutes les pages d'un document.
Extraction de texte et d'image
IronPDF permet l'extraction de texte et d'images à partir de documents PDF, permettant ainsi aux développeurs d'extraire des données pour le traitement ou la réutilisation.
Ceci est utile dans des scénarios où vous devez analyser le contenu d'un PDF, extraire des informations de formulaires ou récupérer des images pour une utilisation ultérieure.
Prise en charge d'Unicode et multilingue
IronPDF dispose d'un support Unicode robuste, ce qui signifie qu'il peut gérer des caractères et polices internationaux, le rendant idéal pour générer des PDF dans plusieurs langues.
Il prend en charge des langues telles que le chinois, l'arabe, le russe, et bien d'autres, permettant la création de documents PDF multilingues.
Optimisé pour la performance
IronPDF est optimisé pour la performance, capable de gérer de grands documents PDF et de forts volumes de requêtes. La bibliothèque garantit que, même lors du traitement de grands ensembles de données ou d'images, la génération de PDF reste rapide et efficace.
API et outils conviviaux pour les développeurs
IronPDF est livré avec une API complète et facile à utiliser. Les développeurs peuvent rapidement commencer en utilisant des appels de méthode simples pour effectuer des tâches complexes.
L'API est bien documentée, ce qui facilite l'intégration de IronPDF dans n'importe quelle application C# ou .NET.
Prise en Charge Multiplateforme
IronPDF est compatible multiplateforme, ce qui signifie qu'il peut être utilisé à la fois dans des environnements Windows et Linux, vous permettant de générer et de manipuler des PDFs sur différents systèmes d'exploitation.
Comment convertir du HTML en PDF à l'aide d'IronPDF
class Program
{
static void Main()
{
// Specify license key
License.LicenseKey = "Yoour Key";
// Create a new HtmlToPdf object
var Renderer = new ChromePdfRenderer();
// Define the HTML string/ HTML code to be converted, can use html document
string htmlContent = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>";
// Convert pdf simple HTML string to a PDF document
var document = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF output document to a file
document.SaveAs("html2Pdf.pdf"); // path to pdf file generated
}
}
class Program
{
static void Main()
{
// Specify license key
License.LicenseKey = "Yoour Key";
// Create a new HtmlToPdf object
var Renderer = new ChromePdfRenderer();
// Define the HTML string/ HTML code to be converted, can use html document
string htmlContent = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>";
// Convert pdf simple HTML string to a PDF document
var document = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF output document to a file
document.SaveAs("html2Pdf.pdf"); // path to pdf file generated
}
}
Friend Class Program
Shared Sub Main()
' Specify license key
License.LicenseKey = "Yoour Key"
' Create a new HtmlToPdf object
Dim Renderer = New ChromePdfRenderer()
' Define the HTML string/ HTML code to be converted, can use html document
Dim htmlContent As String = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>"
' Convert pdf simple HTML string to a PDF document
Dim document = Renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF output document to a file
document.SaveAs("html2Pdf.pdf") ' path to pdf file generated
End Sub
End Class
$vbLabelText $csharpLabel
Explication de l'extrait de code
1. Configuration de la clé de licence
Le programme commence par définir la clé de licence IronPDF, nécessaire pour débloquer toutes les fonctionnalités de la bibliothèque.
2. Création du moteur de rendu
Une instance de ChromePdfRenderer est initialisée. Ce composant est responsable de la conversion du contenu HTML en un document PDF, agissant comme un pont entre le HTML brut et le résultat final.
3. Définir le contenu HTML
Une variable de chaîne, htmlContent, est créée pour stocker la structure HTML qui sera convertie en PDF. Dans cet exemple, il contient un simple en-tête.
4. Conversion de HTML en PDF
La méthode RenderHtmlAsPdf() est appelée sur l'instance ChromePdfRenderer, en passant la chaîne HTML en entrée. Cette fonction traite le contenu et le transforme en un document PDF.
5. Enregistrement du PDF
Enfin, le PDF généré est enregistré dans un fichier nommé "html2Pdf.pdf" en utilisant la méthode SaveAs(), le stockant sur le disque pour un accès futur.
Sortie
Ajouter depuis PixabayTéléverser
ou faites glisser et déposez une image ici
Ajouter un texte alternatif à l'image
Informations sur la licence (version d'essai disponible)
IronPDF nécessite une clé de licence valide pour une pleine fonctionnalité. Vous pouvez obtenir une licence d'essai depuis le site officiel. Avant d'utiliser la bibliothèque IronPDF, définissez la clé de licence comme suit :
IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key"
$vbLabelText $csharpLabel
Cela garantit que la bibliothèque fonctionne sans limitations.
Conclusion
Bien que l'utilisation des fonctionnalités intégrées de .NET pour la conversion de HTML en PDF puisse être une solution envisageable pour des cas d'utilisation simples, elle nécessite souvent un effort considérable et manque de capacités modernes. En revanche, des bibliothèques comme IronPDF offrent des fonctionnalités robustes, un développement plus rapide et un support pour le rendu HTML avancé, ce qui en fait le choix privilégié pour la plupart des développeurs. La décision dépend finalement de vos exigences de projet, de votre budget et de vos priorités de développement.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Convertisseur HTML en PDF C# Open Source (Comparaison des bibliothèques .NET)
SUIVANT > Comparaison des 7 bibliothèques C# pour la génération de PDF (outils gratuits et payants)
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