Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

iTextsharp HTML to PDF Avec Styles CSS Exemple C# vs IronPDF

La conversion de HTML en PDF est une tâche cruciale dans de nombreux flux de travail de développement logiciel moderne, que ce soit pour générer des rapports, des factures ou créer de la documentation. En tant que développeur C#, vous avez plusieurs bibliothèques à votre disposition pour simplifier ce processus.

In this article, we'll compare two of the most popular libraries within the .NET ecosystem: IronPDF and iTextSharp. Les deux bibliothèques offrent des fonctionnalités robustes, mais elles diffèrent dans des domaines clés tels que la facilité d'utilisation, les outils de création de PDF, le support du style CSS et les licences. Que vous soyez débutant ou développeur chevronné, ce guide vous aidera à comprendre leurs fonctionnalités principales et à décider laquelle convient le mieux en fonction de vos besoins et exigences de projet.

Vous voulez suivre ? Téléchargez l'essai gratuit d'IronPDF pour explorer vous-même les fonctionnalités puissantes d'IronPDF.

Comparaison des Bibliothèques Principales : iTextSharp et IronPDF

iTextSharp et IronPDF fournissent aux développeurs les outils nécessaires pour la conversion de HTML en PDF en C#. Cependant, chacun a ses propres forces et faiblesses.

  • iTextSharp est une bibliothèque open-source qui existe depuis longtemps. Elle offre des options de flexibilité et de personnalisation étendues, mais elle peut être quelque peu complexe à configurer et à utiliser, surtout lorsque l'on traite des rendus HTML et CSS avancés. Cependant, il convient de noter qu'iTextSharp est un produit hérité qui ne reçoit maintenant que des mises à jour liées à la sécurité.

  • IronPDF, d'autre part, est un produit commercial développé par Iron Software. Il est connu pour son interface conviviale, son support CSS robuste et sa facilité d'utilisation. Il s'intègre parfaitement aux applications C#, ce qui en fait un excellent choix pour les développeurs ayant besoin d'une génération de PDF rapide et efficace sans sacrifier la qualité.

Avant de plonger dans la façon de convertir le format HTML en PDF avec ces deux bibliothèques, examinons d'abord un exemple de comparaison de base qui montre la différence dans la manière dont ces deux bibliothèques traitent la conversion de contenu web/HTML lourd en CSS et JavaScript en un document PDF.

iTextSharp vs IronPDF URL en PDF

Comme vous pouvez le voir à partir des documents PDF résultants, cela démontre comment iTextSharp ne peut traiter que le contenu HTML brut de l'URL fournie, tandis qu'IronPDF est capable de maintenir la mise en page et le style CSS d'origine, garantissant que le document PDF généré ressemble de près à la page web originale.

Guide d'Installation Étape par Étape

Configuration d'iTextSharp

  1. Installation via la console NuGet : Pour commencer à utiliser iTextSharp, vous pouvez l'installer directement depuis NuGet. Ouvrez votre projet Visual Studio, allez dans le gestionnaire de package NuGet et exécutez la commande suivante :
Install-Package iTextSharp

Installation d'iTextSharp via la console NuGet

  1. Installation via le gestionnaire de paquets NuGet : Alternativement, vous pouvez l'installer via le gestionnaire de paquets NuGet pour l'écran de solution. Pour ce faire, naviguez vers "Outils > Gestionnaire de paquets NuGet > Gérer les paquets NuGet pour la solution".

Menu déroulant des outils

Ensuite, recherchez la bibliothèque iTextSharp et cliquez sur "Installer".

Écran NuGet d'iTextSharp

  1. Ajouter des références : Une fois installé, ajoutez les références nécessaires dans votre projet, notamment celles liées à la conversion HTML en PDF.
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
Imports iTextSharp.text.pdf
Imports iTextSharp.text.html.simpleparser
$vbLabelText   $csharpLabel

Configuration d'IronPDF

  1. Installation via la console NuGet : Pour commencer à utiliser IronPDF, vous pouvez l'installer directement depuis NuGet. Ouvrez votre projet Visual Studio, allez dans le gestionnaire de package NuGet et exécutez la commande suivante :
Install-Package IronPdf
  1. Installation via le gestionnaire de paquets NuGet : Alternativement, vous pouvez l'installer via le gestionnaire de paquets NuGet pour l'écran de solution exactement comme nous l'avons fait dans les étapes ci-dessus pour iTextSharp. Cependant, cette fois, recherchez IronPDF, avant de cliquer sur "Installer".

    Écran NuGet d'IronPDF

  2. Ajouter des références : Une fois installé, importez IronPDF dans votre projet :
using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Il est important de se rappeler qu'IronPDF nécessite une clé de licence pour une utilisation commerciale/une utilisation en dehors du développement.

Mise en œuvre de la Conversion HTML en PDF

Utilisation d'iTextSharp

Une fois iTextSharp configuré, assurez-vous d'avoir le package itextsharp.xmlworker installé dans votre projet avant de pouvoir commencer à créer des PDF à partir de contenu HTML. Cependant, vous rencontrerez des défis avec HTML plus complexe, en particulier lorsque des styles CSS sont impliqués. iTextSharp nécessite généralement un effort supplémentaire pour obtenir un style parfait par rapport à IronPDF. Il est important de se rappeler qu'iTextSharp gère uniquement le HTML/CSS2 basique (pas de flexbox, pas de grille, CSS limité).

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// Define HTML content with CSS styling
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        // Use XMLWorkerHelper to parse and add HTML content to the PDF document
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// Define HTML content with CSS styling
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        // Use XMLWorkerHelper to parse and add HTML content to the PDF document
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml

' Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

' Define HTML content with CSS styling
Dim html As String = "
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>"

' Create PDF from HTML content
Using stream As New FileStream("report.pdf", FileMode.Create)
	Dim pdfDoc As New Document(PageSize.A4, 25, 25, 30, 30)
	Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, stream)
	pdfDoc.Open()
	Using sr As New StringReader(html)
		' Use XMLWorkerHelper to parse and add HTML content to the PDF document
		XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
	End Using
	pdfDoc.Close()
	writer.Close()
End Using
Console.WriteLine("PDF generation completed successfully.")
$vbLabelText   $csharpLabel

Fichier PDF de sortie

Sortie HTML vers PDF d'iTextSharp

Utilisation de IronPDF

IronPDF simplifie le processus de génération de PDF, capable de convertir facilement le contenu HTML en nouveaux documents PDF en seulement quelques lignes de code, comme le montre l'exemple de code ci-dessous. Il est capable de travailler avec des documents HTML avancés avec des fichiers CSS utilisés pour le style, des chaînes HTML et des contenus web riches en CSS/JavaScript.

Voici un exemple simple qui inclut du CSS en ligne :

using IronPdf;

class Program
{
    static void Main()
    {
        // Define HTML content with inline CSS styling
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>";

        // Use ChromePdfRenderer to render the HTML content as a PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("AdvancedStyledReport.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Define HTML content with inline CSS styling
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>";

        // Use ChromePdfRenderer to render the HTML content as a PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("AdvancedStyledReport.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Define HTML content with inline CSS styling
		Dim content = "
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>"

		' Use ChromePdfRenderer to render the HTML content as a PDF
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(content)
		pdf.SaveAs("AdvancedStyledReport.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Fichier PDF de sortie

Sortie HTML vers PDF d'IronPDF

Avec IronPDF, vous pouvez vous attendre à un fichier PDF soigné avec un style CSS précis, comme le montre l'exemple de code ci-dessus, en faisant un incontournable pour de nombreux développeurs travaillant avec des fichiers HTML complexes, des chaînes, et plus. Au-delà des tâches simples de conversion de documents HTML en PDF, IronPDF est capable de tâches de manipulation PDF avancées et de sécurité PDF. Cela en fait une excellente bibliothèque PDF tout-en-un.

Différences Clés et Paysage des Concurrents

Lors de l'évaluation d'iTextSharp et d'IronPDF, il est important de considérer non seulement leurs fonctionnalités, mais également le paysage concurrentiel. D'autres concurrents comme Apryse et Aspose.PDF offrent des solutions similaires de HTML en PDF, mais avec leurs propres compromis en termes de prix et de fonctionnalité.

Fonctionnalité IronPDF iTextSharp Apryse Aspose.PDF
Facilité d'utilisation Élevée Moyen Élevée Moyen
Support CSS Complet Partiel Complet Complet
Licences Commercial Open Source Commercial Commercial
Support Excellent Communautaire Premium Premium
Tarification À partir de $799 Licence gratuite/commerciale Basé sur devis À partir de $1,679 par an

IronPDF se démarque par son support complet du HTML5 et CSS3 moderne, ce qui est essentiel pour la plupart des développeurs aujourd'hui. Son support étendu pour la manipulation des documents PDF, le contrôle de la création de documents PDF, la facilité du processus de conversion, et plus, font d'IronPDF une bibliothèque PDF populaire.

Conclusion et Recommandations

In conclusion, both IronPDF and iTextSharp offer strong capabilities for HTML to PDF conversion in C#, but they cater to different types of developers. Si vous recherchez une solution open-source avec un solide support communautaire, iTextSharp peut être le bon choix. Cependant, pour les développeurs qui ont besoin de facilité d'utilisation, d'un support CSS robuste, et d'une solution commerciale, IronPDF offre une expérience beaucoup plus rationalisée et riche en fonctionnalités. Que vous cherchiez un outil capable d'automatiser la génération de factures, créer des documents PDF de marque, ou convertir des pages web entières en fichiers PDF, IronPDF est à votre disposition.

Essayez aujourd'hui les fonctionnalités conviviales d'IronPDF – téléchargez l'essai gratuit pour une expérience de première main et voyez à quel point la conversion HTML en PDF peut être facile.

Veuillez noteriTextSharp est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par iTextSharp. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à des fins d'information uniquement et reflètent les informations disponibles publiquement au moment de la rédaction.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser IronPDF pour convertir du HTML en PDF en utilisant sa méthode RenderHtmlAsPdf pour les chaînes HTML ou RenderHtmlFileAsPdf pour les fichiers HTML. Cette bibliothèque prend en charge les HTML5 et CSS3 modernes, garantissant un style et un rendu précis.

Quels sont les principaux avantages de l'utilisation d'IronPDF pour la conversion HTML en PDF ?

IronPDF offre un support robuste pour les HTML5 et CSS3 modernes, ce qui le rend idéal pour traiter du contenu web complexe. Son API conviviale permet une intégration transparente avec C#, et il prend également en charge le contenu riche en JavaScript, garantissant que les pages web dynamiques sont converties avec précision.

Pourquoi un développeur pourrait-il choisir iTextSharp plutôt qu'IronPDF ?

Un développeur pourrait choisir iTextSharp s'il préfère une solution open-source avec des options flexibles pour la personnalisation. iTextSharp, maintenant connu sous le nom d'iText7, convient à ceux qui ont l'expertise pour gérer sa complexité, surtout lorsqu'il s'agit de HTML et CSS avancés.

IronPDF peut-il gérer JavaScript dans le contenu HTML ?

Oui, IronPDF peut traiter JavaScript dans le contenu HTML grâce à ses capacités de rendu avancées, en faisant un choix adapté pour convertir des pages Web dynamiques et interactives en PDF.

Comment installer IronPDF dans un projet C# ?

Vous pouvez installer IronPDF via le gestionnaire de package NuGet dans Visual Studio. Utilisez la commande Install-Package IronPdf dans la console du gestionnaire de package ou recherchez IronPDF dans l'interface utilisateur du gestionnaire de package NuGet.

Que faut-il prendre en compte lors du choix entre IronPDF et iTextSharp ?

Lors du choix entre les deux, considérez votre besoin de facilité d'utilisation, de support CSS et JavaScript, des exigences de licence et de la complexité du contenu HTML. IronPDF excelle dans les technologies web modernes et l'intégration transparente, tandis qu'iTextSharp est un bon choix pour ceux qui préfèrent une solution open-source.

Y a-t-il une exigence de licence pour IronPDF ?

Oui, IronPDF nécessite une licence commerciale pour une utilisation au-delà des environnements de développement. Les licences peuvent être achetées en fonction du niveau de support et des fonctionnalités requises.

Quels sont les problèmes courants lors de la conversion de HTML en PDF avec iTextSharp ?

Les problèmes courants avec iTextSharp incluent la gestion des HTML et CSS complexes, car cela peut nécessiter des configurations et personnalisations supplémentaires. Les développeurs doivent souvent ajuster leur code pour garantir le style et le rendu corrects de contenus web avancés.

Comment IronPDF se compare-t-il à d'autres bibliothèques PDF comme Aspose.PDF ?

IronPDF offre une facilité d'utilisation et un support complet pour les standards web modernes, similaire à Aspose.PDF. Son prix compétitif et son ensemble de fonctionnalités en font un choix solide pour les développeurs ayant besoin de conversions HTML en PDF fiables tout en maintenant la qualité et les performances.

Curtis Chau
Rédacteur technique

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

Lire la suite