COMPARAISON

iText vs IronPDF : Guide de comparaison technique

iTextvsIronPDF: Licences, paradigmes API et génération moderne de PDF en .NET

Lorsque les développeurs .NET évaluent les bibliothèques PDF, iText(y compris iText7 et l'ancien iTextSharp) apparaît comme une option complète avec des capacités de manipulation PDF étendues. Cependant, iTextpose d'importants problèmes de licence - la licence AGPL exige que toute application web utilisant iTextmette en open-source l'ensemble de son code ou paie un abonnement commercial onéreux.IronPDFpropose une approche différente : une bibliothèque commerciale avec des options de licence perpétuelle, une conversion HTML vers PDF intégrée et un moteur de rendu moderne Chromium.

Cette comparaison examine les deux bibliothèques à travers des dimensions techniquement pertinentes afin d'aider les développeurs professionnels et les architectes à prendre des décisions éclairées pour leurs besoins en .NET PDF.

Comprendre iText/ iTextSharp

iText est une bibliothèque PDF à double licence qui permet de générer des PDF à partir de zéro, de modifier des documents existants et d'effectuer des opérations telles que l'ajout de texte, d'images et d'éléments de sécurité. La bibliothèque utilise une approche API programmatique dans laquelle les développeurs construisent du contenu PDF à l'aide de classes telles que PdfWriter, PdfDocument, Document, Paragraph, Table, et Cell.

iText 7 utilise des espaces de noms tels que iText.Kernel.Pdf, iText.Layout, iText.Layout.Element, et iText.Html2pdf. La création de PDF suit un modèle qui consiste à créer un PdfWriter, à l'envelopper dans un PdfDocument, puis à créer un Documentpour la mise en page du contenu. Le texte est ajouté via les objets Paragraph, les tableaux via les objets Tableet Cell, et les images via la classe Imageavec ImageDataFactory.

Pour la conversion HTML-PDF, iTextnécessite le module complémentaire pdfHTML, disponible via l'espace de noms iText.Html2pdf avec la méthode HtmlConverter.ConvertToPdf(). Ce module complémentaire est vendu séparément moyennant un supplément de prix.

iText est disponible sous la licence AGPL, qui présente des caractéristiques virales : tout logiciel incorporant du code AGPL dans une application web doit également être publié en tant que source ouverte, ou le développeur doit acheter une licence commerciale. iTexta supprimé les licences perpétuelles, exigeant des renouvellements d'abonnement annuels pour l'utilisation commerciale.

Comprendre IronPDF

IronPDF est une bibliothèque PDF commerciale conçue pour les développeurs .NET qui préfèrent travailler avec HTML et CSS plutôt qu'avec la construction programmatique de PDF. La bibliothèque utilise un moteur de rendu moderne Chromium, offrant un rendu précis de HTML5, CSS3, JavaScript et des systèmes de mise en page modernes tels que Flexbox et Grid.

IronPDF utilise la classe ChromePdfRenderercomme principal mécanisme de génération de PDF avec des méthodes telles que RenderHtmlAsPdf(), RenderUrlAsPdf(), et RenderHtmlFileAsPdf(). La bibliothèque renvoie des objets Document PDFqui peuvent être enregistrés avec SaveAs() ou accessibles en tant que BinaryData. La configuration utilise les propriétés RenderingOptions pour la taille du papier, les marges, les en-têtes et les pieds de page.

IronPDF propose des options de licence perpétuelle et d'abonnement, sans exigence de licence virale. La conversion HTML-PDF est intégrée dans le produit de base, sans nécessiter de modules complémentaires.

Comparaison des licences et des modèles commerciaux

La différence la plus importante entre ces bibliothèques concerne les licences et les implications commerciales.

Fonction iText7 / iTextSharp IronPDF
Licence AGPL (virale) ou abonnement onéreux Option commerciale, perpétuelle
HTML-à-PDF Module complémentaire pdfHTML (coût supplémentaire) Rendu Chromium intégré
Risque du logiciel libre Doit ouvrir les applications web sous AGPL Aucune exigence virale
Modèle de tarification Abonnement uniquement Perpétuel ou abonnement
Option perpétuelle Éliminé Disponible

Le piège de la licence AGPL est particulièrement problématique pour les applications web commerciales. Si vous utilisez iTextdans une application web sans acheter de licence commerciale, l'AGPL exige que vous mettiez en open-source l'ensemble de votre application - pas seulement le code PDF, mais l'ensemble de votre base de code.

Comparaison des paradigmes API

La philosophie fondamentale de conception de l'API diffère considérablement entre les bibliothèques.

Aspect iText IronPDF
Paradigme API Programmatique (paragraphe, tableau, cellule) HTML d'abord avec CSS
Support CSS CSS de base (via le module complémentaire pdfHTML) CSS3 complet, Flexbox, Grille
JavaScript Aucun Exécution complète
Courbe d'apprentissage Steep (système de coordonnées PDF) Convivialité pour les développeurs web
Construction de contenu Objets manuels de bas niveau Modèles HTML

iText construit des PDF de manière programmatique avec une construction d'objets explicite.IronPDFutilise HTML/CSS, ce qui permet aux développeurs web d'appliquer directement leurs compétences existantes.

Code Comparaison : Opérations PDF courantes

Conversion HTML en PDF

L'opération la plus fondamentale démontre les différentes approches et les exigences supplémentaires.

iText (nécessite l'extension pdfHTML):

// NuGet: Install-Package itext7
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        string outputPath = "output.pdf";

        using (FileStream fs = new FileStream(outputPath, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, fs);
        }
    }
}
// NuGet: Install-Package itext7
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        string outputPath = "output.pdf";

        using (FileStream fs = new FileStream(outputPath, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, fs);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF :

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

iText nécessite l'espace de noms séparé iText.Html2pdf (du module complémentaire pdfHTML), crée un FileStream manuellement et appelle HtmlConverter.ConvertToPdf()pour écrire directement dans le flux.

IronPDF crée un ChromePdfRenderer, appelle RenderHtmlAsPdf() avec la chaîne HTML, et enregistre avec SaveAs(). Le moteur Chromium offre une prise en charge complète de CSS3 et de JavaScript sans ajouts supplémentaires.

Pour des options de rendu HTML avancées, explorez le guide de conversion du HTML en PDF.

Créer des PDF avec du texte et des images

La construction programmatique d'un PDF illustre très clairement la différence de paradigme.

iText:

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    static void Main()
    {
        string outputPath = "document.pdf";

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdf = new PdfDocument(writer))
        using (Document document = new Document(pdf))
        {
            document.Add(new Paragraph("Sample PDF Document"));
            document.Add(new Paragraph("This document contains text and an image."));

            Image img = new Image(ImageDataFactory.Create("image.jpg"));
            img.SetWidth(200);
            document.Add(img);
        }
    }
}
// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    static void Main()
    {
        string outputPath = "document.pdf";

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdf = new PdfDocument(writer))
        using (Document document = new Document(pdf))
        {
            document.Add(new Paragraph("Sample PDF Document"));
            document.Add(new Paragraph("This document contains text and an image."));

            Image img = new Image(ImageDataFactory.Create("image.jpg"));
            img.SetWidth(200);
            document.Add(img);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF :

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

iText nécessite la création d'un PdfWriter, son encapsulation dans un PdfDocument, la création d'un Documentpour la mise en page, puis l'ajout d'objets Paragrapheet d'objets Imagecréés via ImageDataFactory. Chaque élément nécessite une construction et une configuration explicites.

IronPDF utilise le langage HTML standard - titres, paragraphes et balises <img> - tous stylisés à l'aide d'attributs HTML ou CSS familiers. Le moteur Chromium gère le rendu, produisant le même résultat avec beaucoup moins de code.

Fusionner plusieurs fichiers PDF

La fusion de documents démontre les différences de complexité des API.

iText:

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using System.IO;

class Program
{
    static void Main()
    {
        string outputPath = "merged.pdf";
        string[] inputFiles = { "document1.pdf", "document2.pdf", "document3.pdf" };

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdfDoc = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdfDoc);

            foreach (string file in inputFiles)
            {
                using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
                {
                    merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
                }
            }
        }
    }
}
// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using System.IO;

class Program
{
    static void Main()
    {
        string outputPath = "merged.pdf";
        string[] inputFiles = { "document1.pdf", "document2.pdf", "document3.pdf" };

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdfDoc = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdfDoc);

            foreach (string file in inputFiles)
            {
                using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
                {
                    merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
                }
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF :

// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfDocuments = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        };

        var merged = PdfDocument.Merge(pdfDocuments);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfDocuments = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        };

        var merged = PdfDocument.Merge(pdfDocuments);
        merged.SaveAs("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

iText nécessite la création d'un PdfWriterpour la sortie, la création d'un Document PDFde destination, la création d'un PdfMerger, puis l'itération dans les fichiers sources pour créer des instances de PdfReaderet de PdfDocument, l'appel à merger.Merge() avec des plages de pages, et la gestion de l'élimination de tous les objets.

IronPDF charge les documents avec PdfDocument.FromFile(), crée une liste et appelle la méthode statique PdfDocument.Merge(). L'opération est nettement plus concise.

Pour en savoir plus sur la manipulation des PDF, consultez les tutoriels IronPDF.

Référence de mappage d'API

Pour les développeurs qui évaluent la migration vers iTextou qui comparent les capacités, cette correspondance montre les opérations équivalentes :

Mise en correspondance des classes

classe iText7 classe iTextSharp Équivalent d'IronPDF
PdfWriter PdfWriter ChromePdfRenderer
Document PDF Document Document PDF
Document Document ChromePdfRenderer.RenderHtmlAsPdf()
Paragraphe Paragraphe HTML <p>, <h1>, etc.
Table PdfPTable HTML <table>
Cell PdfPCell HTML <td>, <th>
Image Image HTML <img>
Liste Liste HTML <ul>, <ol>
ListItem ListItem HTML <li>
PdfReader PdfReader PdfDocument.FromFile()
PdfMerger N/A PdfDocument.Merge()
PdfTextExtractor PdfTextExtractor pdf.ExtractAllText()

Mise en correspondance des méthodes

Tâches iText7 IronPDF
Créer un PDF à partir de HTML HtmlConverter.ConvertToPdf() renderer.RenderHtmlAsPdf()
Créer un PDF à partir d'une URL Télécharger HTML + convertir renderer.RenderUrlAsPdf()
Créer un PDF à partir d'un fichier HtmlConverter.ConvertToPdf(File.ReadAllText()) renderer.RenderHtmlFileAsPdf()
Enregistrer dans un fichier document.Close() (via stream) pdf.SaveAs()
Enregistrer en octets memoryStream.ToArray() pdf.BinaryData
Ouvrir le PDF existant new PdfDocument(new PdfReader(path)) PdfDocument.FromFile()
Fusionner des PDF PdfMerger.Merge() PdfDocument.Merge()
Extraire le texte PdfTextExtractor.GetTextFromPage() pdf.ExtractAllText()

Cartographie stylistique

méthode iText7 Équivalent d'IronPDF
SetTextAlignment(TextAlignment.CENTER) CSS text-align : center
SetFontSize(12) CSS font-size : 12px
SetBold() CSS font-weight : bold
SetBackgroundColor() CSS background-color
SetBorder() CSS border

Résumé de la comparaison des fonctionnalités

Fonction iText IronPDF
Construction programmatique de PDF ✅(Approche principale) ⚠️ (Via HTML)
HTML vers PDF ⚠️ (Requiert le module complémentaire pdfHTML) ✅(Intégré)
Prise en charge CSS3 ⚠️ (Basic via pdfHTML) ✅(Complet)
Flexbox/Grille
Exécution JavaScript
Fusion de PDF ✅(PdfMerger) ✅(PdfDocument.Merge())
Extraction de texte ✅(PdfTextExtractor) ✅(ExtractAllText())
Licence perpétuelle ❌(Éliminé)
Aucun risque lié à l'AGPL ❌(AGPL ou abonnement)
Soutien à la communauté ✅(Extensif)

Quand les équipes envisagent de passer d'iText à IronPDF

Les équipes de développement évaluent le passage d'iText àIronPDFpour plusieurs raisons :

<Piège de la licence AGPL : la licence AGPL est très restrictive pour les applications web commerciales. Si vous utilisez iTextdans une application web sans acheter de licence commerciale, l'AGPL exige que vous mettiez en open-source l'ensemble de votre application - pas seulement le code PDF, mais l'ensemble de votre base de code. Les équipes qui développent des logiciels propriétaires ne peuvent souvent pas accepter cette exigence de licence virale.

Licences commerciales avec abonnement uniquement : iTexta éliminé les licences perpétuelles, exigeant des renouvellements d'abonnement annuels pour l'utilisation commerciale. Les équipes préférant les achats ponctuels trouvent l'option de licence perpétuelle d'IronPDF plus adaptée à la budgétisation.

<Coût du module complémentaire pdfHTML : pour convertir HTML en PDF avec iText, les développeurs doivent investir dans le module complémentaire pdfHTML, ce qui augmente les coûts et la complexité.IronPDFinclut la conversion HTML vers PDF dans le produit de base avec un moteur de rendu moderne Chromium.

Complexité de l'API programmatique : iTextnécessite une construction PDF manuelle de bas niveau avec Paragraph, Table, Cell, et d'autres objets. Les équipes ayant une expérience du développement web trouvent l'approche HTML/CSS d'IronPDF plus intuitive et plus productive.

Normes Web modernes : même avec pdfHTML, iTextn'offre qu'une prise en charge limitée des feuilles de style CSS et JavaScript complexes. Le moteur Chromium d'IronPDF permet une exécution complète des CSS3, Flexbox, Grid et JavaScript pour les contenus web modernes.

Base de code simplifiée : La conversion de l'approche programmatique d'iText au paradigme HTML-first d'IronPDF se traduit souvent par une réduction significative du code. Les tableaux de rapports qui nécessitent des dizaines de lignes avec les objets Table, Cellet Paragraphedeviennent de simples tableaux HTML avec un style CSS.

Forces et considérations

Les points forts d'iText

  • Fonctionnalités complètes : Capacités étendues de manipulation de fichiers PDF
  • Grande adoption : Grande communauté et documentation complète
  • Cross-Platform : Fonctionne sur différentes plateformes .NET
  • Contrôle précis : Manipulation directe d'objets PDF pour des besoins spécifiques

Considérations relatives à l'iText

  • <Licence AGPL : La licence virale exige des applications web en open-sourcing ou un abonnement commercial
  • Souscription uniquement : Licence perpétuelle éliminée
  • pdfHTML Add-On : HTML vers PDFnécessite un achat séparé
  • Complexité programmatique : courbe d'apprentissage abrupte avec le système de coordonnées PDF
  • Limited Modern CSS : prise en charge CSS de base même avec pdfHTML
  • Pas de JavaScript : Impossible d'exécuter JavaScript dans un contenu HTML

Les points forts d'IronPDF

  • Licence perpétuelle : Option d'achat unique
  • Pas de risque AGPL : garder le code propriétaire fermé
  • <HTML-to-PDF intégré : aucun module complémentaire n'est nécessaire
  • Chromium Engine : Prise en charge complète de CSS3, Flexbox, Grid, JavaScript
  • Convivialité avec les développeurs web : Utilise des compétences familières en HTML/CSS
  • Une API simplifiée : Des méthodes concises pour les opérations courantes
  • Ressources complètes : tutoriels et documentation exhaustifs

Considérations relatives à IronPDF

  • Licence commerciale : Nécessaire pour une utilisation en production
  • Paradigme HTML-First : Une approche différente de la construction programmatique

Conclusion

iText etIronPDFreprésentent des approches fondamentalement différentes de la génération de PDF dans les applications .NET. iTextoffre une construction PDF programmatique complète à l'aide de classes telles que Paragraph, Tableet Cell, mais pose d'importants problèmes de licence - l'AGPL exige des applications web en open-sourcing, la licence perpétuelle a été supprimée et le HTML vers PDFnécessite l'achat d'un module complémentaire pdfHTML séparé.

IronPDF offre une alternative moderne avec une conversion HTML-PDF intégrée utilisant un moteur Chromium, des options de licence perpétuelle et aucune exigence de licence virale. L'approche HTML-first permet aux développeurs web d'appliquer directement leurs compétences existantes, ce qui se traduit souvent par un code plus simple et plus facile à maintenir.

Alors que les entreprises planifient .NET 10, C# 14 et le développement d'applications jusqu'en 2026, le choix entre la construction programmatique de PDF sous licence AGPL et le rendu basé sur HTML sous licence commerciale a un impact significatif à la fois sur la conformité légale et sur la productivité du développement. Les équipes qui cherchent à éliminer les risques liés à l'AGPL, à réduire la complexité des licences ou à exploiter les compétences en développement web pour la génération de PDF trouveront enIronPDFune réponse efficace à ces exigences.

Commencez à évaluerIronPDFavec un essai gratuit et explorez la documentation complète pour évaluer l'adéquation à vos besoins spécifiques.