PdfPig vs IronPDF : Guide de comparaison technique
Lorsque les développeurs .NET travaillent avec des fichiers PDF, ils recherchent souvent des bibliothèques capables de gérer des tâches telles que la lecture, l'extraction et la génération de documents PDF. Parmi les options disponibles, pdfpig s'est fait connaître comme un outil principalement axé sur la lecture et l'extraction de contenu à partir de fichiers PDF. Cette comparaison examine pdfpig et IronPDF, en analysant leurs différences en termes d'architecture, d'exhaustivité des fonctionnalités et d'adéquation à divers besoins applicatifs.
Qu'est-ce que PdfPig?
PdfPig est une bibliothèque open-source de lecture et d'extraction de PDF spécialement conçue pour C#. Il permet aux développeurs d'accéder avec précision au contenu des fichiers PDF, en fournissant des outils pour extraire le texte, les images, les données de formulaire et les métadonnées de ces fichiers. Distribué sous licence Apache 2.0, pdfpig est à la fois open source et adapté aux entreprises, permettant des modifications et une distribution dans le cadre d'applications propriétaires.
Bien que pdfpig excelle dans ses capacités d'extraction, son champ d'application se limite à l'analyse de documents existants. La bibliothèque ne peut pas créer de PDF à partir de HTML, d'URL ou de programmes ; elle se concentre exclusivement sur la lecture de ce qui existe déjà.
Les principales caractéristiques de pdfpig sont les suivantes
- Mode lecture seule : conçu spécifiquement pour l'analyse et l'extraction de fichiers PDF
- Logiciel libre : Licence Apache 2.0 sans frais de licence Extraction de texte avec données de position : extrait avec précision le texte contenant des données de position et gère les polices de caractères avec soin.
- Analyse au niveau des mots : fournit des cadres de délimitation des mots pour l'analyse de la mise en page
- .NET pur : aucune dépendance native, fonctionne partout où .NET est exécuté
- Indexation des pages à partir de 1 : les pages sont accessibles à l'aide d'une indexation à partir de 1.
Qu'est-ce qu'IronPDF?
IronPDF est une bibliothèque .NET complète assurant la gestion intégrale du cycle de vie des fichiers PDF. La classe ChromePdfRenderer utilise un moteur moderne basé sur Chromium pour la conversion HTML vers PDF, tandis que la classe PdfDocument offre des capacités étendues de manipulation et d'extraction.
Contrairement à pdfpig qui se concentre uniquement sur la lecture,IronPDFprend en charge à la fois la génération et l'extraction de PDF, ce qui en fait une option flexible pour diverses tâches liées aux PDF. La bibliothèque gère la création à partir de HTML et d'URL, l'extraction de texte, la manipulation de documents, la fusion, le filigrane, les fonctions de sécurité et les signatures numériques, le tout au sein d'une seule et même bibliothèque.
Comparaison d'architecture
La principale différence entre pdfpig etIronPDFréside dans leur portée : lecture seule contre gestion complète du cycle de vie des PDF.
| Aspect | PdfPig | IronPDF |
|---|---|---|
| Accent principal | Lecture/Extraction | Cycle de vie complet du PDF |
| Création de PDF | Très limité | Complet |
| HTML à PDF | Non pris en charge | Moteur Chromium complet |
| URL vers PDF | Non pris en charge | Prise en charge |
| Extraction de texte | Excellente | Excellente |
| Extraction d'images | Oui | Oui |
| Accès aux métadonnées | Oui | Oui |
| Manipulation de PDF | Non pris en charge | Fusionner, diviser, faire pivoter |
| Marqueurs d'eau | Non pris en charge | Prise en charge |
| Sécurité/Cryptage | Non pris en charge | Prise en charge |
| Remplissage de formulaires | Non pris en charge | Prise en charge |
| Signatures numériques | Non pris en charge | Prise en charge |
| Indexation des pages | basé sur 1 | basé sur 0 |
| Licence | Apache 2.0 (gratuit) | Commercial |
| Support | Communauté | Professional |
Pour les applications ne nécessitant que la lecture de PDF et l'extraction de texte, pdfpig offre d'excellentes capacités. Pour les applications nécessitant la génération de PDF, la manipulation de documents ou toute autre capacité de création,IronPDFconstitue une solution complète.
Comparaison de l'extraction de texte
L'extraction de texte démontre les points forts des deux bibliothèques dans ce flux de travail commun, avec des différences notables dans la conception de l'API.
Approche d'extraction de texte de PdfPig:
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}
Approche d'extraction de texte IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
PdfPig nécessite une déclaration using pour une élimination correcte, une itération à travers les pages via GetPages(), et une agrégation manuelle du texte avec StringBuilder. La propriété page.Textfournit le contenu textuel de chaque page.
La méthode ExtractAllText() d'IronPDF extrait tout le texte de toutes les pages en un seul appel, sans nécessiter d'itération manuelle ou de motifs d'élimination. Pour l'extraction page par page,IronPDFfournit ExtractTextFromPage(index). Notez la différence d'API : pdfpig utilise PdfDocument.Open() tandis qu'IronPDF utilise PdfDocument.FromFile().
Conversion HTML en PDF
La conversion de HTML en PDF démontre l'écart fondamental entre les capacités de ces bibliothèques.
L'approche HTML-PDF de PdfPig:
// PdfPigdoes not support HTML to PDF conversion
// PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML to PDF conversion
// PdfPigdoes not support HTML to PDF conversion
// PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML to PDF conversion
L'approcheIronPDFHTML-to-PDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}
PdfPig ne peut pas créer de PDF à partir de HTML - cette fonctionnalité n'est tout simplement pas prise en charge. La bibliothèque est conçue exclusivement pour lire et analyser des documents PDF existants, et non pour en générer de nouveaux.
Le ChromePdfRenderer d'IronPDF utilise un moteur Chromium moderne pour convertir le contenu HTML avec une prise en charge complète de CSS3 et de JavaScript, produisant ainsi une sortie PDF de haute fidélité à partir de contenu web. Pour obtenir des conseils détaillés sur les modèles de conversion de HTML en PDF, consultez le tutoriel HTML en PDF.
Accès aux métadonnées du PDF
La lecture des métadonnées des PDF montre des capacités similaires avec des modèles d'API différents.
Lecture des métadonnées de PdfPig:
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}
Lecture des métadonnées IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}
Les deux bibliothèques permettent d'accéder aux propriétés standard des métadonnées PDF. PdfPigutilise document.Information tandis qu'IronPDF utilise pdf.MetaData. Le nombre de pages est accessible via document.NumberOfPagesdans pdfpig contre pdf.PageCountdans IronPDF.
Référence de mappage d'API
Pour les équipes qui évaluent la migration de pdfpig vers IronPDF, la compréhension des mappages d'API permet d'estimer l'effort de développement.
Chargement du document
| PdfPig | IronPDF |
|---|---|
PdfDocument.Open(path) |
PdfDocument.FromFile(path) |
PdfDocument.Open(bytes) |
PdfDocument.FromBinaryData(bytes) |
PdfDocument.Open(stream) |
PdfDocument.FromStream(stream) |
utilisant (var doc = ...) |
var pdf = ... |
Accès à la page
| PdfPig | IronPDF |
|---|---|
document.NumberOfPages |
pdf.PageCount |
document.GetPages() |
pdf.Pages |
document.GetPage(1) |
pdf.Pages[0] |
page.Text |
pdf.Pages[i].Text |
page.GetWords() |
pdf.ExtractTextFromPage(i) |
Métadonnées
| PdfPig | IronPDF |
|---|---|
document.Information.Titre |
pdf.MetaData.Title |
document.Information.Auteur |
pdf.MetaData.Author |
document.Information.Subject |
pdf.MetaData.Subject |
document.Information.Creator |
pdf.MetaData.Creator |
document.Information.Producer |
pdf.MetaData.Producer |
Caractéristiques non disponibles dans PdfPig
| Fonctionnalité d'IronPDF | Description du projet |
|---|---|
renderer.RenderHtmlAsPdf(html) |
Créer un PDF à partir de HTML |
renderer.RenderUrlAsPdf(url) |
Créer un PDF à partir d'une URL |
PdfDocument.Merge(pdfs) |
Combiner plusieurs PDF |
pdf.CopyPages(start, end) |
Extraire des pages spécifiques |
pdf.ApplyWatermark(html) |
Ajouter des filigranes |
pdf.SecuritySettings.UserPassword |
Protection par mot de passe |
pdf.Sign(certificate) |
Signatures numériques |
pdf.Form.GetFieldByName(name).Value |
Remplissage de formulaires |
Ces fonctionnalités supplémentaires d'IronPDF vont au-delà de la lecture pour offrir une gestion complète du cycle de vie des PDF. Pour les fonctionnalités de manipulation des PDF, voir le guide fusionner et diviser des PDF.
Différence d'indexation des pages
Une différence essentielle pour la migration : pdfpig utilise une indexation des pages basée sur 1 alors qu'IronPDF utilise une indexation basée sur 0.
Accès à la page PdfPig :
// PdfPig: basé sur 1indexing
var firstPage = document.GetPage(1); // First page
var secondPage = document.GetPage(2); // Second page
// PdfPig: basé sur 1indexing
var firstPage = document.GetPage(1); // First page
var secondPage = document.GetPage(2); // Second page
Accès aux pages IronPDF:
// IronPDF: basé sur 0indexing
var firstPage = pdf.Pages[0]; // First page
var secondPage = pdf.Pages[1]; // Second page
// IronPDF: basé sur 0indexing
var firstPage = pdf.Pages[0]; // First page
var secondPage = pdf.Pages[1]; // Second page
Cette différence nécessite une attention particulière lors de la migration du code qui fait référence à des pages spécifiques.
Données sur la position des mots
L'un des domaines dans lesquels pdfpig présente un avantage certain est la fourniture de données de position au niveau des mots.
Positions des mots dans PdfPig :
using (var document = PdfDocument.Open("input.pdf"))
{
foreach (var page in document.GetPages())
{
var words = page.GetWords();
foreach (var word in words)
{
// PdfPigprovides bounding box coordinates
Console.WriteLine($"Word: '{word.Text}' at ({word.BoundingBox.Left}, {word.BoundingBox.Top})");
}
}
}
using (var document = PdfDocument.Open("input.pdf"))
{
foreach (var page in document.GetPages())
{
var words = page.GetWords();
foreach (var word in words)
{
// PdfPigprovides bounding box coordinates
Console.WriteLine($"Word: '{word.Text}' at ({word.BoundingBox.Left}, {word.BoundingBox.Top})");
}
}
}
Le word.BoundingBox de PdfPigfournit des données de positionnement précises pour chaque mot, permettant l'analyse de la mise en page, la détection des tableaux et la compréhension de la structure du document.IronPDFextrait le texte sans les données de position - si les coordonnées au niveau des mots sont essentielles, envisagez une approche hybride utilisant les deux bibliothèques.
Différences entre les modèles d'élimination
Les bibliothèques diffèrent par leurs exigences en matière de gestion de la mémoire.
Disposition de PdfPig(obligatoire):
// PdfPigrequires using statement for proper disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// Work with document
}
// PdfPigrequires using statement for proper disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// Work with document
}
Élimination d'IronPDF (facultatif):
//IronPDFdoesn't require using statement
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
// Dispose optional: pdf.Dispose();
//IronPDFdoesn't require using statement
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
// Dispose optional: pdf.Dispose();
PdfPig nécessite le modèle using pour un nettoyage correct des ressources. Le PdfDocument d'IronPDF ne nécessite pas d'élimination explicite, bien qu'il puisse être éliminé si nécessaire.
Résumé de la comparaison des fonctionnalités
La différence de portée entre pdfpig etIronPDFcouvre pratiquement toutes les opérations PDF au-delà de la lecture.
| Fonction | PdfPig | IronPDF |
|---|---|---|
| Licence | Source ouverte (Apache 2.0) | Commercial |
| Lecture/extraction de fichiers PDF | Excellente | Excellente |
| Génération de PDF | Limité | Complet |
| HTML à PDF | Non pris en charge | Prise en charge |
| URL vers PDF | Non pris en charge | Prise en charge |
| Fusionner des PDF | Non pris en charge | Prise en charge |
| Diviser les PDF | Non pris en charge | Prise en charge |
| Marqueurs d'eau | Non pris en charge | Prise en charge |
| Protection des mots de passe | Non pris en charge | Prise en charge |
| Signatures numériques | Non pris en charge | Prise en charge |
| Remplissage de formulaires | Non pris en charge | Prise en charge |
| Données sur la position des mots | Prise en charge | Non pris en charge |
| Support et documentation | Soutien à la communauté | Support dédié |
| Coût | Gratuit | Payé |
Les applications nécessitant watermarking, la fusion de PDF ou des fonctions de sécurité ne peuvent pas y parvenir avec pdfpig seul.
Quand les équipes envisagent de passer de PdfPigà IronPDF
Plusieurs facteurs poussent les équipes à évaluerIronPDFcomme une alternative ou un complément à pdfpig :
Exigences pour la création de PDF : PdfPigne peut pas créer de PDF à partir de HTML, d'URL ou par programmation. Les applications ayant besoin de générer des PDF à partir de contenu web ou de modèles nécessitent des bibliothèques supplémentaires - ou la solution complète d'IronPDF.
Besoins en matière de manipulation de documents : PdfPigne peut pas fusionner, diviser ou modifier les fichiers PDF. Les applications nécessitant l'assemblage ou la modification de documents ont besoin des capacités de manipulation d'IronPDF.
Exigences de sécurité : PdfPigne peut pas ajouter de mots de passe, de chiffrement ni de signatures numériques. Les applications ayant des exigences en matière de sécurité ont besoin des fonctionnalités de sécurité d'IronPdf.
Filigrane et personnalisation : PdfPigne peut pas ajouter de superpositions visuelles aux documents existants. Les applications nécessitant un marquage des documents ont besoin des fonctionnalités de filigrane d'IronPDF.
Assistance professionnelle : PdfPigcompte sur le soutien de la communauté. Les organisations qui exigent des délais de réponse garantis et une assistance professionnelle bénéficient de l'assistance commerciale d'IronPDF.
Approche hybride : certaines équipes utilisent les deux bibliothèques : pdfpig pour une analyse textuelle détaillée avec les positions des mots, etIronPDFpour la génération et la manipulation. Cette approche permet de tirer parti des atouts de chaque bibliothèque.
Comparaison d'installation
Installation de PdfPig:
Install-Package PdfPig
Install-Package PdfPig
Purement .NET sans dépendances natives.
Installation d'IronPDF:
Install-Package IronPdf
Install-Package IronPdf
IronPDF nécessite la configuration d'une clé de licence :
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
La première exécution d'IronPDF télécharge le moteur de rendu Chromium (~150 Mo en une seule fois). Pour les déploiements Linux, des dépendances supplémentaires sont nécessaires. La bibliothèque prend en charge .NET Framework, .NET Core, .NET 5+, ainsi que la compatibilité ascendante vers .NET 10 et C# 14.
Prise de décision
Le choix entre pdfpig etIronPDFdépend des exigences de votre application :
Optez pour PdfPigsi : votre besoin principal est une extraction et une lecture fiables, vous avez besoin de données de position au niveau des mots pour l'analyse de la mise en page, vous souhaitez une solution économique avec une licence open source et vous n'avez pas besoin de générer ou de manipuler des PDF.
Optez pourIronPDFsi : vous avez besoin d'une prise en charge complète du cycle de vie des PDF, y compris la conversion HTML vers PDF ; votre projet nécessite des fonctionnalités de création et d'édition de PDF ; vous avez besoin de manipuler des documents (fusion, division, filigrane) ; vous avez besoin de fonctionnalités de sécurité (mots de passe, chiffrement, signatures) ; ou vous avez besoin d'une assistance professionnelle sous licence commerciale.
Considérer les deux : pour une analyse de texte avancée avec génération de PDF, une approche hybride tire parti des capacités de positionnement des mots de pdfpig avec les fonctionnalités de création et de manipulation d'IronPDF.
Commencer avec IronPDF
Pour évaluerIronPDFpour vos besoins en matière de PDF :
- Installation via NuGet :
Install-Package IronPdf - Passez en revue la documentation de démarrage
- Explorez tutoriels de conversion d'HTML en PDF pour obtenir des modèles de création
- Consultez la référence de l'API pour obtenir la documentation complète de la méthode
Les tutoriels IronPDF fournissent des exemples complets couvrant des scénarios courants, de la conversion de base à la manipulation avancée des PDF.
PdfPig etIronPDFservent des objectifs fondamentalement différents dans l'écosystème PDF .NET. PdfPigexcelle dans la lecture de PDF et l'extraction de texte - en analysant les documents avec précision et en fournissant des données de position au niveau des mots pour l'analyse de la mise en page.IronPDFfournit une solution PDF complète couvrant la création, l'extraction, la manipulation et la sécurité dans une seule bibliothèque.
Pour les applications ne nécessitant que la lecture de fichiers PDF, l'approche ciblée de pdfpig, avec ses licences open-source, peut s'avérer appropriée. Pour les applications nécessitant la génération de PDF, la manipulation de documents ou toute capacité de création au-delà de la lecture,IronPDFfournit ces fonctionnalités de manière native sans nécessiter de bibliothèques supplémentaires.
La décision va au-delà des exigences actuelles pour s'étendre aux besoins anticipés. Alors que pdfpig excelle dans son domaine de lecture et d'extraction, IronPdf se distingue par sa polyvalence et sa gestion complète des PDF. Les organisations commencent souvent par des exigences de lecture, mais s'étendent à la génération et à la manipulation de besoins - choisirIronPDFdès le départ fournit une base pour ces exigences élargies tout en garantissant un support professionnel et un développement actif.
Évaluez l'ensemble de vos besoins en matière de PDF - actuels et anticipés - avant de choisir entre ces bibliothèques. La nature en lecture seule de pdfpig crée des limites de capacité qui deviennent apparentes au fur et à mesure que les applications mûrissent et que les exigences augmentent.