Passer au contenu du pied de page
COMPARAISONS DE PRODUITS
Comparer IronPDF à iTextSharp en C#

iTextSharp C# HTML to PDF Alternative pour .NET Core

Pour les développeurs travaillant avec des PDF, disposer d'une bibliothèque fiable pour la génération et la manipulation de PDF est essentiel. Dans l'écosystème .NET, il peut y avoir des douzaines de bibliothèques PDF C# parmi lesquelles choisir, alors comment choisir celle qui répond le mieux à vos besoins ?

Sélectionner la bonne bibliothèque est crucial pour un développement efficace lors de l'utilisation de fonctionnalités PDF dans les applications .NET. This article provides a detailed comparison between two prominent C# PDF libraries: IronPDF and iText 7 (formerly known as iTextSharp). Nous explorerons leurs fonctionnalités, leurs performances, leur licence et leur adéquation aux différentes exigences de projet pour vous aider à prendre une décision éclairée.

Pourquoi choisir une bibliothèque PDF .NET ?

Les PDF sont largement utilisés dans les rapports, factures et documents juridiques, rendant la génération et la manipulation de PDF essentielles pour de nombreuses applications. Lors de la sélection d'une bibliothèque, les facteurs clés à considérer incluent :

  • Facilité d'intégration – À quelle vitesse pouvez-vous implémenter des fonctionnalités PDF ?
  • Prise en charge de la conversion HTML en PDF – Permet-elle une conversion facile à partir de contenu web ?
  • Licence et coût – Est-elle gratuite ou nécessite-t-elle une licence commerciale ?
  • Jeu de fonctionnalités – Prend-elle en charge l'extraction de texte, la signature ou l'édition ?
  • Performance – Quelle est la rapidité de génération ou de traitement des PDF ?

Aperçu d'IronPDF et d'iText7

Introduction à IronPDF

IronPDF est une bibliothèque PDF commerciale conçue spécifiquement pour les développeurs .NET. Elle simplifie la génération, la manipulation et la conversion de PDF, ce qui en fait l'une des bibliothèques les plus faciles à utiliser dans les applications C#.

IronPDF prend en charge .NET Core, .NET Framework et .NET Standard, garantissant la compatibilité sur divers environnements .NET. Son haut niveau de compatibilité multiplateforme en fait un choix idéal pour les équipes travaillant sur différents environnements d'applications, et elle s'intègre parfaitement aux IDE tels que Visual Studio. Outre sa version .NET, IronPDF est également disponible en Java, Python et Node.js.

Caractéristiques principales :

  • Built-in HTML-to-PDF support – Convert web pages, HTML, CSS, and JavaScript into PDFs without extra add-ons.
  • PDF Editing – Modify existing PDFs by adding text, images, headers, and footers.
  • Sécurité des PDF – Chiffrez les PDF, définissez une protection par mot de passe et gérez les autorisations pour la visualisation, l'impression ou l'édition.
  • Filigranage et annotations – Appliquez facilement des filigranes texte et image, des tampons ou des commentaires aux documents.
  • Remplissage de formulaire et extraction de données – Remplissez des formulaires PDF interactifs de manière programmatique et extrayez les données des formulaires.

Idéal pour : Les développeurs à la recherche d'une solution simple tout-en-un sans la complexité des add-ons supplémentaires ou de la licence compliquée.

Introduction à iText7

iText 7 est une bibliothèque PDF puissante et flexible qui offre des capacités étendues de manipulation de PDF, y compris la création, le chiffrement et la signature de documents. Cependant, sa bibliothèque principale ne prend pas en charge nativement la conversion HTML en PDF.

Caractéristiques principales

  • Personnalisation PDF à faible niveau – Offre un contrôle détaillé sur la structure, les métadonnées et le rendu des PDF.
  • Accessibilité et conformité : Génère des PDF/A, PDF/UA et PDF/X pour une conservation à long terme et une conformité en matière d'accessibilité.
  • Conversion HTML en PDF : L'add-on pdfHTML payant permet la conversion de contenu HTML en PDF.
  • Support Java et .NET : Conçu principalement pour Java, avec un support C# via iText 7 pour .NET.
  • Gestion des formulaires PDF : Créez et éditez des AcroForms et XFA Forms pour les formulaires PDF interactifs.

Idéal pour : Les développeurs ayant besoin d'une solution PDF hautement personnalisable et prêts à acheter des add-ons supplémentaires pour des fonctionnalités étendues.

Caractéristiques et avantages

Avant d'entrer dans les détails des fonctionnalités et de leurs exemples de code associés, examinons d'abord l'une des plus grandes différences fonctionnelles entre IronPDF et iText 7, à savoir la conversion HTML en PDF.

  • IronPDF prend nativement en charge le rendu des HTML, CSS et JavaScript sans nécessiter de composants supplémentaires.
  • iText 7, en revanche, nécessite l'add-on pdfHTML, qui est une fonction payante sous licence commerciale. Cela augmente les coûts pour les développeurs nécessitant une fonctionnalité de conversion web vers PDF.

Diagramme de flux de comparaison de HTML à PDF

Conclusion : Si vous avez besoin de la conversion HTML en PDF, IronPDF est la solution la plus rentable car elle inclut cette fonctionnalité dès le départ.

Fonctionnalités clés d'IronPDF (avec exemples de code)

IronPDF offre un large éventail de fonctionnalités pour travailler avec des documents PDF. Cela va de la création de PDF à la manipulation et à la sécurité des PDF. Pour avoir une idée plus claire de l'ampleur des fonctionnalités de cette bibliothèque, nous allons jeter un œil à quelques-unes des fonctionnalités clés sélectionnées.

Conversion HTML en PDF

Convertissez du contenu HTML en documents PDF de haute qualité grâce au puissant moteur de rendu d'IronPDF. Le moteur de rendu d'IronPDF ne se contente pas de convertir le contenu HTML non plus; avec cela, vous serez en mesure de maintenir toute la mise en forme CSS originale et l'interactivité JavaScript.

using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance for rendering HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified HTML file as a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("HtmlToPdf.pdf");
    }
}
using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance for rendering HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified HTML file as a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("HtmlToPdf.pdf");
    }
}
Imports IronPdf

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new ChromePdfRenderer instance for rendering HTML to PDF
		Dim renderer As New ChromePdfRenderer()

		' Render the specified HTML file as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("example.html")

		' Save the rendered PDF to the specified file path
		pdf.SaveAs("HtmlToPdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Entrée HTML Contenu HTML d'entrée

Sortie PDF Sortie HTML en PDF avec IronPDF

Dans cet exemple de code, nous avons d'abord créé une nouvelle instance de ChromePdfRenderer, ce qui nous donne accès au puissant moteur de rendu qu'IronPDF utilise pour rendre HTML en PDF. Ensuite, nous passons un fichier HTML à la méthode RenderHtmlFileAsPdf(), qui à son tour rend le HTML en PDF, stocké dans l'objet PdfDocument. Enfin, nous enregistrerons le PDF à l'emplacement de fichier spécifié.

URL en PDF

Pour les développeurs cherchant à convertir le contenu d'URL en PDF, ne cherchez pas plus loin qu'IronPDF. Avec cette bibliothèque, vous pourrez créer des documents PDF parfaits au pixel près grâce à l'utilisation du moteur de rendu ChromePdfRenderer, qui maintiendra tous les styles et mises en page d'origine lors de la conversion de l'URL en PDF. Pour cet exemple, nous utiliserons cette URL pour démontrer comment IronPDF peut gérer un style CSS plus complexe.

using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified URL as a PDF document
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified URL as a PDF document
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
Imports IronPdf

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new ChromePdfRenderer instance
		Dim renderer As New ChromePdfRenderer()

		' Render the specified URL as a PDF document
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")

		' Save the rendered PDF to the specified file path
		pdf.SaveAs("UrlToPdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie PDF : Sortie URL en PDF avec IronPDF

Tout comme dans notre exemple de HTML à PDF, la première étape pour convertir une URL en PDF en utilisant IronPDF est de créer d'abord une nouvelle instance de ChromePdfRenderer. Une fois que la méthode a rendu le contenu de l'URL en format PDF, en utilisant RenderUrlAsPdf, elle enregistre le PDF résultant dans un nouvel objet PdfDocument, avant d'utiliser la méthode SaveAs pour enregistrer le PDF.

Signatures PDF

Assurez l'authenticité de votre document PDF en appliquant une signature numérique à vos documents PDF. C'est ce que nous montrons ici.

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    static void Main(string[] args)
    {
        // Load the certificate used for signing the PDF
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature instance and set the signature image
        var sig = new PdfSignature(cert);
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign the existing PDF file and save the signed version
        sig.SignPdfFile("product_report.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    static void Main(string[] args)
    {
        // Load the certificate used for signing the PDF
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature instance and set the signature image
        var sig = new PdfSignature(cert);
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign the existing PDF file and save the signed version
        sig.SignPdfFile("product_report.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Imports IronSoftware.Drawing

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Load the certificate used for signing the PDF
		Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)

		' Create a PdfSignature instance and set the signature image
		Dim sig = New PdfSignature(cert)
		sig.SignatureImage = New PdfSignatureImage("IronPdf.png", 0, New Rectangle(150, 100, 350, 250))

		' Sign the existing PDF file and save the signed version
		sig.SignPdfFile("product_report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie PDF Il existe différentes méthodes que les développeurs pourraient envisager pour appliquer des signatures numériques, telles que la signature numérique du PDF avec un certificat sécurisé, l'ajout d'une image d'une signature manuscrite à un PDF, ou le tamtage d'une image du certificat sur le PDF lui-même.

Sortie de signature numérique avec IronPDF Pour cet exemple, nous avons chargé notre objet certificat, créé une représentation visuelle de la signature, ou dans notre cas, l'image IronPDF, et créé un nouvel objet PdfSignature, qui gère la signature du document PDF lui-même.

If you want to explore more of the features IronPDF has to offer, be sure to check out its informative features page, or the How-to Guides which contain in-depth code examples for each feature.

Enfin, nous avons utilisé le SignPdfFile pour signer et enregistrer notre document PDF.

Fonctionnalités clés de iText7 (avec exemples de code) iText7 offre une large gamme de fonctionnalités pour personnaliser et améliorer vos documents PDF. Avec un support de format étendu pour divers standards PDF et une manipulation PDF avancée, il y a beaucoup à découvrir dans cette bibliothèque PDF.

Conversion HTML en PDF

Cependant, comme mentionné précédemment, iText7 peut nécessiter des packages supplémentaires pour effectuer certaines tâches liées aux PDF, telles que la conversion de HTML en PDF.

using iText.Html2pdf;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        // Open the HTML file stream
        using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
        // Create the output PDF file stream
        using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
        {
            // Initialize ConverterProperties for HTML to PDF conversion
            ConverterProperties converterProperties = new ConverterProperties();

            // Convert the HTML source to a PDF document
            HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);

            // Close the PDF file
            pdf.Close();
        }
    }
}
using iText.Html2pdf;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        // Open the HTML file stream
        using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
        // Create the output PDF file stream
        using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
        {
            // Initialize ConverterProperties for HTML to PDF conversion
            ConverterProperties converterProperties = new ConverterProperties();

            // Convert the HTML source to a PDF document
            HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);

            // Close the PDF file
            pdf.Close();
        }
    }
}
Imports iText.Html2pdf
Imports System.IO

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Open the HTML file stream
		Using htmlSource As FileStream = File.Open("example.html", FileMode.Open)
		' Create the output PDF file stream
		Using pdf As FileStream = File.Open("HtmlToPdfOutput.pdf", FileMode.Create)
			' Initialize ConverterProperties for HTML to PDF conversion
			Dim converterProperties As New ConverterProperties()

			' Convert the HTML source to a PDF document
			HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties)

			' Close the PDF file
			pdf.Close()
		End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie PDF Bien qu'iText7 lui-même ne puisse pas gérer la conversion de HTML en PDF, nous pouvons utiliser le pdfHTML, un add-on payant trouvé sous la licence commerciale d'iText7, pour convertir le fichier HTML que nous avons utilisé dans notre exemple IronPDF en un document PDF.

Sortie HTML vers PDF avec iText7 Pour cet exemple, nous avons chargé le fichier HTML et avons spécifié l'emplacement du fichier pour enregistrer le PDF rendu.

URL en PDF

Puis, en utilisant la méthode ConvertToPdf, nous pouvons facilement convertir le fichier HTML en un document PDF. Maintenant, il est temps de comparer comment iText7 se mesure à IronPDF en ce qui concerne la conversion des URL en PDF.

using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;

public class Program
{
    public static async System.Threading.Tasks.Task Main(string[] args)
    {
        string url = "https://www.apple.com";  // Replace with your target URL
        string outputPdfPath = "output.pdf";

        try
        {
            // Download HTML content from the URL
            using (HttpClient client = new HttpClient())
            {
                string htmlContent = await client.GetStringAsync(url);

                // Convert HTML to PDF
                using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
                {
                    ConverterProperties properties = new ConverterProperties();
                    HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
                }
            }

            Console.WriteLine("PDF created successfully: " + outputPdfPath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;

public class Program
{
    public static async System.Threading.Tasks.Task Main(string[] args)
    {
        string url = "https://www.apple.com";  // Replace with your target URL
        string outputPdfPath = "output.pdf";

        try
        {
            // Download HTML content from the URL
            using (HttpClient client = new HttpClient())
            {
                string htmlContent = await client.GetStringAsync(url);

                // Convert HTML to PDF
                using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
                {
                    ConverterProperties properties = new ConverterProperties();
                    HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
                }
            }

            Console.WriteLine("PDF created successfully: " + outputPdfPath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.IO
Imports iText.Html2pdf

Public Class Program
	Public Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim url As String = "https://www.apple.com" ' Replace with your target URL
		Dim outputPdfPath As String = "output.pdf"

		Try
			' Download HTML content from the URL
			Using client As New HttpClient()
				Dim htmlContent As String = Await client.GetStringAsync(url)

				' Convert HTML to PDF
				Using pdfStream As New FileStream(outputPdfPath, FileMode.Create)
					Dim properties As New ConverterProperties()
					HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties)
				End Using
			End Using

			Console.WriteLine("PDF created successfully: " & outputPdfPath)
		Catch ex As Exception
			Console.WriteLine("Error: " & ex.Message)
		End Try
	End Function
End Class
$vbLabelText   $csharpLabel

Sortie PDF Pour cela, nous utiliserons la même URL exacte qu'auparavant pour garantir une comparaison équitable.

Sortie URL vers PDF avec iText7 Comme on le voit ici, l'approche d'iText7 pour la conversion d'URL en PDF est plus manuelle et complexe. D'abord, nous devons télécharger le contenu HTML de l'URL, avant de suivre des étapes similaires à celles de l'exemple HTML en PDF pour rendre notre contenu URL en un document PDF et l'enregistrer.

Signatures PDF

using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        string inputPdf = "input.pdf";       // PDF to be signed
        string outputPdf = "signed_output.pdf";  // Signed PDF output
        string pfxFile = "IronSoftware.pfx";  // Path to your PFX certificate
        string password = "Passw0rd";   // Password for PFX file

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
            using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
            {
                ks.Load(fs, password.ToCharArray());
            }

            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }

            if (alias == null)
            {
                throw new Exception("Alias not found in the PFX file.");
            }

            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);

            // Convert BouncyCastle certificates to iText certificates
            var itextCertChain = new IX509Certificate[chain.Length];
            for (int i = 0; i < chain.Length; i++)
            {
                itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
            }

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(inputPdf))
            using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
            {
                PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());

                // Set up the external signature (private key + digest algorithm)
                IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
                IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
                IExternalDigest digest = new BouncyCastleDigest();

                // Perform the signing (detached signature)
                signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        string inputPdf = "input.pdf";       // PDF to be signed
        string outputPdf = "signed_output.pdf";  // Signed PDF output
        string pfxFile = "IronSoftware.pfx";  // Path to your PFX certificate
        string password = "Passw0rd";   // Password for PFX file

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
            using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
            {
                ks.Load(fs, password.ToCharArray());
            }

            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }

            if (alias == null)
            {
                throw new Exception("Alias not found in the PFX file.");
            }

            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);

            // Convert BouncyCastle certificates to iText certificates
            var itextCertChain = new IX509Certificate[chain.Length];
            for (int i = 0; i < chain.Length; i++)
            {
                itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
            }

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(inputPdf))
            using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
            {
                PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());

                // Set up the external signature (private key + digest algorithm)
                IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
                IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
                IExternalDigest digest = new BouncyCastleDigest();

                // Perform the signing (detached signature)
                signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
Imports System.Security.Cryptography.X509Certificates
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports iText.Bouncycastle.Crypto
Imports iText.Commons.Bouncycastle.Cert
Imports iText.Commons.Bouncycastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.Crypto
Imports iText.Bouncycastle.X509
Imports iText.Kernel.Crypto
Imports System.IO

Public Class Program
	Shared Sub Main(ByVal args() As String)
		Dim inputPdf As String = "input.pdf" ' PDF to be signed
		Dim outputPdf As String = "signed_output.pdf" ' Signed PDF output
		Dim pfxFile As String = "IronSoftware.pfx" ' Path to your PFX certificate
		Dim password As String = "Passw0rd" ' Password for PFX file

		Try
			' Load your certificate
			Dim ks As Pkcs12Store = (New Pkcs12StoreBuilder()).Build()
			Using fs As New FileStream(pfxFile, FileMode.Open, FileAccess.Read)
				ks.Load(fs, password.ToCharArray())
			End Using

			Dim [alias] As String = Nothing
			For Each al As String In ks.Aliases
				If ks.IsKeyEntry(al) Then
					[alias] = al
					Exit For
				End If
			Next al

			If [alias] Is Nothing Then
				Throw New Exception("Alias not found in the PFX file.")
			End If

			Dim pk As ICipherParameters = ks.GetKey([alias]).Key
			Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])

			' Convert BouncyCastle certificates to iText certificates
			Dim itextCertChain = New IX509Certificate(chain.Length - 1){}
			For i As Integer = 0 To chain.Length - 1
				itextCertChain(i) = New X509CertificateBC(chain(i).Certificate)
			Next i

			' Create output PDF with signed content
			Using reader As New PdfReader(inputPdf)
			Using os As New FileStream(outputPdf, FileMode.Create, FileAccess.Write)
				Dim signer As New PdfSigner(reader, os, (New StampingProperties()).UseAppendMode())

				' Set up the external signature (private key + digest algorithm)
				Dim iTextPrivateKey As IPrivateKey = New PrivateKeyBC(pk)
				Dim pks As IExternalSignature = New PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256)
				Dim digest As IExternalDigest = New BouncyCastleDigest()

				' Perform the signing (detached signature)
				signer.SignDetached(digest, pks, itextCertChain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
			End Using
			End Using

			Console.WriteLine($"PDF digitally signed successfully: {outputPdf}")
		Catch ex As Exception
			Console.WriteLine($"Error signing PDF: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie PDF Comme vous pouvez le voir dans l'image de sortie, iText7 n'a pas pu maintenir une grande partie du style et de la mise en page d'origine, contrairement à IronPDF.

Sortie de signature numérique avec iText7 Comme vous pouvez le voir, bien qu'iText7 soit capable de signer numériquement des documents PDF, le processus a tendance à être beaucoup plus complexe qu'avec IronPDF. Ce code charge un certificat PFX et l'utilise pour signer numériquement un PDF.

Il extrait la clé privée et le certificat, configure le signataire, ajoute une signature détachée au PDF, puis enregistre le document signé.

Analyse concurrentielle

Performance et facilité d'utilisation

Avantages clés d'IronPDF IronPDF est réputé pour sa facilité d'utilisation et son optimisation pour des performances élevées, offrant une API plus simple qui simplifie les tâches courantes telles que la conversion de HTML en PDF. Elle fournit des méthodes de haut niveau qui abstraient les tâches complexes de traitement des PDF, permettant aux développeurs de créer, éditer et manipuler des PDF avec un minimum de code.

Pour le traitement de documents multi-thread ou à grande échelle, IronPDF prend en charge l'exécution parallèle.

  • API facile à utiliser – Les méthodes de haut niveau simplifient les tâches courantes comme la conversion HTML en PDF.
  • Configuration minimale requise – S'intègre facilement dans les projets .NET.
  • Exécution parallèle intégrée – Optimisée pour la génération et conversion en masse de PDF.

  • API simplifiée – Nécessite moins de lignes de code pour obtenir des résultats.

iText 7 – Puissant mais complexe iText 7, d'autre part, offre un niveau de contrôle plus détaillé et granulaire, ce qui peut être avantageux pour les développeurs qui nécessitent une personnalisation étendue. Elle fournit une API robuste pour travailler avec des opérations PDF à faible niveau.

Cependant, en raison de sa complexité, iText 7 requiert souvent plus de code pour obtenir des résultats similaires par rapport à IronPDF.

  • Contrôle granulaire des PDF – Idéal pour les applications d'entreprise nécessitant une conformité stricte (par exemple, PDF/A, PDF/UA, signatures numériques).
  • Hautement personnalisable – Offre une manipulation de PDF à faible niveau pour des cas d'utilisation avancés.
  • Courbe d'apprentissage plus pentue – Nécessite plus de configuration et de réajustement par rapport à IronPDF.

  • Plus intensif en code – Les tâches courantes nécessitent souvent des implémentations plus longues.

Licence et coût Lors de la sélection d'une bibliothèque PDF pour un projet .NET, les considérations de licence et de coût sont critiques.

Les bibliothèques IronPDF et iText 7 suivent des modèles de licence différents, et le choix dépend des besoins du projet, du budget et des exigences en matière de conformité.

Licence et coût d'IronPDF IronPDF suit un modèle de licence commerciale, ce qui signifie que bien qu'elle offre un essai gratuit pour la licence commerciale et soit gratuite pour le développement et l'évaluation, une licence payante est requise pour une utilisation en production complète.

Le tarif est transparent et dépend de facteurs tels que l'échelle d'utilisation, le nombre de développeurs et le type de projet.

Licence d'IronPDF :

  • Modèle de licence commerciale (Pas de restrictions open-source).
  • Tarification simple fondée sur les licences développeur ou d'équipe.
  • Pas de coût supplémentaire pour la conversion HTML en PDF, la sécurité des PDF ou d'autres fonctionnalités clés.

  • Idéal pour les entreprises qui nécessitent une solution PDF simple et économique.

Conclusion : IronPDF inclut toutes les fonctionnalités principales dans une seule licence, ce qui en fait un choix économique pour les équipes et les entreprises.

Licence et coût d'iText7

iText7 fonctionne sous un modèle de double licence, qui comprend : 1. AGPL (GNU Affero General Public License) – Gratuit pour les projets open-source, mais nécessite que l'intégralité du projet utilisant iText7 soit open-source et conforme à l'AGPL.
Cela signifie que toute modification ou ajout apporté au projet doit également être partagé publiquement. 2. Licence commerciale – Requise pour tout logiciel propriétaire ou application commerciale qui ne souhaite pas divulguer son code source.

La structure tarifaire varie en fonction de l'utilisation, du niveau de support et de l'échelle de déploiement. Pour les entreprises cherchant à intégrer iText 7 dans un logiciel propriétaire, une licence commerciale est obligatoire.

Le coût peut être important, en particulier pour des solutions de niveau entreprise, car il est basé sur un tarif par développeur, mais il fournit un accès à un support professionnel et assure la conformité légale.

Pourquoi iText 7 peut être plus cher :

  • Tarification par développeur – Chaque développeur nécessite une licence distincte, ce qui augmente les coûts totaux pour les équipes.
  • Les fonctionnalités essentielles nécessitent des add-ons coûteux :

    • pdfHTML (Payant) – Requis pour la conversion HTML en PDF.
    • pdfOCR (Payant) – Nécessaire pour la reconnaissance de texte à partir d'images.
    • pdfCalligraph (Payant) – Améliore le rendu du texte et la prise en charge des polices.
    • pdfRender (Payant) – Ajoute la conversion PDF en image.
    • pdf2Data (Payant) – Extrait des données structurées à partir de PDF.
  • Les coûts pour l'entreprise peuvent rapidement s'accumuler lorsqu'un grand nombre de fonctionnalités et de développeurs est nécessaire.

Conclusion : Si votre équipe nécessite plusieurs développeurs et des fonctionnalités clés comme HTML en PDF et OCR, iText 7 peut être significativement plus coûteux qu'IronPDF, qui inclut ces fonctionnalités sans coûts supplémentaires.

Scénarios d'utilisation

Projets de petite ou grande entreprise Pour les petits projets ou les projets de taille moyenne nécessitant une implémentation rapide de fonctionnalités PDF avec une configuration minimale, IronPDF est un choix convaincant en raison de son API conviviale et de son ensemble de fonctionnalités complet.

Les projets de niveau entreprise qui exigent une personnalisation étendue et le respect de normes PDF spécifiques peuvent bénéficier des capacités avancées d'iText7, cependant, IronPDF s'avère également un candidat fort pour ce niveau de travail en raison de ses performances élevées, de ses options de licence et de sa facilité d'utilisation.

Utilisation académique et commerciale Dans les environnements académiques ou les projets open-source, la licence AGPL d'iText 7 permet une utilisation gratuite, à condition que la licence du projet soit compatible. Pour les applications commerciales, IronPDF et iText 7 nécessitent l'achat d'une licence commerciale.

Conclusion

Il est conseillé de consulter les termes de la licence de chaque bibliothèque pour s'assurer de la conformité avec les objectifs de votre projet. Choisir la bonne bibliothèque PDF pour votre projet .NET est une décision cruciale qui dépend de facteurs tels que la facilité d'utilisation, l'ensemble des fonctionnalités et les besoins en licence. IronPDF et iText 7 offrent tous deux des capacités PDF puissantes, mais elles répondent à des besoins différents. Au-delà de ces deux bibliothèques, des concurrents tels qu'Aspose, Syncfusion et PDFSharp proposent tous des bibliothèques PDF .NET compétitives.

Cependant, IronPDF se situe systématiquement en tête de l'industrie PDF grâce à son API facile à utiliser, son ensemble de fonctionnalités complet et son efficacité économique.

Ci-dessous, nous avons résumé un argument convaincant pour expliquer pourquoi IronPDF est un excellent choix pour tous vos besoins en bibliothèque PDF .NET.

Aperçu de la comparaison IronPDF vs iText7

Avantages d'IronPDF * Facilité d'utilisation : IronPDF est conçu avec un accent sur la simplicité, ce qui en fait un choix idéal pour les développeurs qui ont besoin d'intégrer rapidement des fonctionnalités PDF dans leurs applications .NET.

Son API intuitive réduit la courbe d'apprentissage et accélère le temps de développement.

  • Documentation complète et support : IronPDF offre une documentation détaillée et un support client réactif, garantissant aux développeurs de pouvoir se mettre rapidement au courant et de résoudre efficacement les problèmes. * Conversion HTML en PDF transparente : IronPDF excelle dans la conversion de HTML, y compris CSS et JavaScript, en PDF de haute qualité.
    Cela est particulièrement bénéfique pour les projets nécessitant de générer dynamiquement des PDF à partir de contenu web.

  • Licence commerciale : Pour les applications commerciales, IronPDF offre des options de licence flexibles, garantissant la conformité sans les restrictions qui peuvent accompagner les licences open-source.

Limites de iText * Complexité : Bien qu'iText 7 offre des fonctionnalités avancées et une personnalisation, son API peut être complexe pour les développeurs novices en manipulation de PDF.

Cela peut entraîner des temps de développement plus longs pour les tâches courantes par rapport à l'approche plus simple d'IronPDF. * Coûts de licence pour usage commercial : La licence AGPL d'iText 7 exige que toute œuvre dérivée soit open-source à moins que vous n'achetiez une licence commerciale.
Cela pourrait être une limitation pour les applications propriétaires qui ne peuvent pas se conformer aux termes de l'AGPL.

Réflexions Finales

If your project requires quick PDF generation, especially from web content, and you're looking for an easy-to-use solution, IronPDF is likely the better choice. However, if your application demands advanced PDF manipulation or strict compliance with PDF standards and you need the flexibility to customize extensively, iText7 might be the better fit. Si votre projet nécessite une génération rapide de PDF, notamment à partir de contenu web, et que vous recherchez une solution facile à utiliser, iText7 pourrait être plus adapté.

Considérez les exigences spécifiques et les contraintes de licence de votre projet pour déterminer la meilleure bibliothèque pour vos besoins.

Veuillez noteriText 7 est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par iText 7. 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 la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Quelles sont les principales différences entre IronPDF et iText 7 ?

IronPDF offre une conversion HTML-en-PDF fluide et un modèle de licence commerciale simple, tandis qu'iText 7 nécessite un module complémentaire payant pour la conversion HTML-en-PDF et suit un modèle de licence double. IronPDF est connu pour sa facilité d'utilisation, tandis qu'iText 7 propose une manipulation PDF avancée mais avec une courbe d'apprentissage plus raide.

Pourquoi devrais-je choisir IronPDF pour mes projets .NET ?

IronPDF est idéal pour les implémentations PDF rapides et économiques, offrant facilité d'utilisation, documentation complète et conversion HTML-en-PDF intégrée sans coûts supplémentaires. Il prend en charge plusieurs versions .NET et propose des fonctionnalités étendues comme l'édition et la sécurité des PDF.

IronPDF est-il adapté pour générer des documents PDF complexes ?

Oui, IronPDF prend en charge la génération de documents PDF complexes avec des fonctionnalités telles que le remplissage de formulaires, les annotations et l'extraction de données. Ses capacités étendues le rendent adapté à une variété d'applications PDF professionnelles.

Quelles sont les options de licence disponibles pour IronPDF ?

IronPDF suit un modèle de licence commerciale, nécessitant une licence payante pour l'utilisation en production. Ce modèle simple élimine les complexités associées aux systèmes de double licence comme ceux d'iText 7.

IronPDF peut-il être intégré dans des projets .NET Core ?

Oui, IronPDF peut être intégré dans des projets .NET Core. Il prend en charge .NET Core, .NET Framework et .NET Standard, ce qui le rend polyvalent pour divers environnements de développement.

Comment IronPDF gère-t-il les fonctionnalités de sécurité des PDF ?

IronPDF offre des fonctionnalités de sécurité PDF robustes, incluant le chiffrement, la protection par mot de passe et les signatures numériques, qui aident à sécuriser les informations sensibles des documents.

Qu'est-ce qui rend IronPDF convivial par rapport à d'autres bibliothèques ?

IronPDF est considéré comme convivial grâce à son API simple, ses exigences de configuration minimales et sa documentation complète, ce qui le rend facile à mettre en œuvre même pour les développeurs ayant une expérience limitée dans la génération de PDF.

Y a-t-il des coûts supplémentaires pour utiliser la conversion HTML-en-PDF dans IronPDF ?

Non, IronPDF inclut des capacités de conversion HTML-en-PDF intégrées, éliminant le besoin de composants ou coûts supplémentaires, contrairement à certaines autres bibliothèques PDF qui nécessitent des modules complémentaires payants.

Comment IronPDF se compare-t-il en termes de performance et de vitesse ?

IronPDF est optimisé pour la performance et la vitesse, offrant une génération et une manipulation de PDF rapides et fiables, ce qui est crucial pour les applications qui traitent de grands volumes de PDF.

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