Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de PdfPig à IronPDF en C#

Migrer de PdfPigàIronPDF: Guide de migration complet en C

Migrer de PdfPigversIronPDFpermet d'étendre vos capacités PDF d'une bibliothèque de lecture seule à une solution PDF complète qui gère la création, la manipulation, l'extraction de texte et les fonctions de sécurité. Ce guide fournit un chemin de migration complet, étape par étape, qui préserve vos flux de travail d'extraction existants tout en ajoutant la génération de PDF, la conversion HTML, la manipulation de documents et les capacités de sécurité que PdfPigne peut pas fournir.

Pourquoi migrer de PdfPigà IronPDF

Comprendre PdfPig

PdfPig est une bibliothèque open-source de lecture et d'extraction de PDF spécialement conçue pour C#. Cette bibliothèque, qui fait partie du projet réputé Apache PDFBox, permet aux développeurs d'accéder au contenu des PDF avec une précision remarquable. Bien que PdfPigbrille par ses capacités d'extraction, son champ d'application est largement limité par rapport aux bibliothèques plus complètes disponibles sur le marché.

PdfPig fournit aux développeurs des outils fiables pour extraire du texte, des images, des données de formulaire et des métadonnées à partir de fichiers PDF. C'est donc un choix approprié pour les applications principalement axées sur l'analyse de documents et l'exploration de données. Cependant, les capacités de PdfPigsont fondamentalement limitées à l'analyse de documents existants.

La limite de la lecture seule

PdfPig se concentre exclusivement sur la lecture des PDF. Lorsque votre application doit se développer au-delà de l'extraction, PdfPigne peut pas vous aider :

  1. Pas de génération de PDF : Impossible de créer des PDF à partir de HTML, d'URL ou par programmation.

  2. Pas de HTML vers PDF : PdfPigest une bibliothèque de lecture et d'analyse de fichiers PDF, et non une bibliothèque de génération de fichiers PDF. Vous devrez utiliser une bibliothèque différente pour la conversion de HTML en PDF.

  3. Pas de manipulation de documents : Il n'est pas possible de fusionner, de diviser ou de modifier des PDF.

  4. Aucune fonction de sécurité : Il n'est pas possible d'ajouter des mots de passe, du cryptage ou des signatures numériques.

  5. Pas de filigranes/timbres : Il n'est pas possible d'ajouter des incrustations visuelles à des documents existants.

  6. Pas de remplissage de formulaires : Il n'est pas possible de remplir des formulaires PDF par programmation.

Comparaison PdfPigvs IronPDF

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
Extraction de texte Excellente Excellente
Manipulation de PDF Non pris en charge Fusionner, diviser, faire pivoter
Marqueurs d'eau Non pris en charge Prise en charge complète
Sécurité/Cryptage Non pris en charge Prise en charge complète
Support et documentation Soutien à la communauté Support dédié
Indexation des pages basé sur 1 basé sur 0

IronPDF prend en charge un ensemble complet de fonctionnalités pour la création, la lecture, l'édition et la signature de PDF. Cette polyvalence permet aux développeurs de gérer les fichiers PDF du début à la fin. Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFoffre une solution complète de cycle de vie des PDF qui va au-delà des capacités de lecture de PdfPig.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

Modifications du paquet NuGet

# Remove PdfPig
dotnet remove package PdfPig

# Install IronPDF
dotnet add package IronPdf
# Remove PdfPig
dotnet remove package PdfPig

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuration de la licence

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Identifier l'utilisation de PdfPig

# Find PdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .

# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .
# Find PdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .

# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .
SHELL

Référence API complète

Modifications de l'espace de nommage

// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages de chargement de documents

PdfPig IronPDF Notes
PdfDocument.Open(path) PdfDocument.FromFile(path) Charger à partir d'un fichier
PdfDocument.Open(bytes) PdfDocument.FromBinaryData(bytes) Chargement à partir d'octets
PdfDocument.Open(stream) PdfDocument.FromStream(stream) Charger à partir du flux
utilisant (var doc = ...) var pdf = ... IronPDFne nécessite pas l'utilisation de

Mappages d'accès aux pages et de propriétés

PdfPig IronPDF Notes
document.NumberOfPages pdf.PageCount Nombre total de pages
document.GetPages() pdf.Pages Collection de pages
document.GetPage(1) pdf.Pages[0] Page unique (note : base 1 vs base 0)

Mappages d'extraction de texte

PdfPig IronPDF Notes
page.Text pdf.Pages[i].Text Texte de la page
page.GetWords() pdf.ExtractTextFromPage(i) Mots/texte de la page
(manual loop) pdf.ExtractAllText() Tout le texte à la fois

Mappings d'accès aux métadonnées

PdfPig IronPDF Notes
document.Information.Titre pdf.MetaData.Title Titre du document
document.Information.Auteur pdf.MetaData.Author L'auteur
document.Information.Subject pdf.MetaData.Subject Sujet
document.Information.Creator pdf.MetaData.Creator Créateur
document.Information.Producer pdf.MetaData.Producer Producteur

Nouvelles fonctionnalités non disponibles dans PdfPig

Fonctionnalité d'IronPDF Description du projet
renderer.RenderHtmlAsPdf(html) Conversion de HTML en PDF
renderer.RenderUrlAsPdf(url) Conversion d'URL en PDF
PdfDocument.Merge(pdfs) Fusionner plusieurs PDF
pdf.ApplyWatermark(html) Ajouter des filigranes
pdf.SecuritySettings.UserPassword Protection par mot de passe
pdf.Sign(certificate) Signatures numériques

Exemples de migration de code

Exemple 1 : Extraction de texte à partir d'un PDF

Avant (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());
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfPig etIronPDFoffrent tous deux d'excellentes capacités d'extraction de texte. La principale différence réside dans le modèle de code. PdfPignécessite une déclaration using avec PdfDocument.Open(), une itération manuelle à travers les pages avec GetPages(), et un StringBuilder pour accumuler le texte de chaque propriété page.Text.

IronPDF simplifie cette tâche en un seul appel : PdfDocument.FromFile() charge le document, et ExtractAllText() renvoie tout le contenu textuel en une seule fois. Aucune déclaration utilisant n'est requise, aucune itération manuelle, aucun StringBuilder. Voir la documentation sur l'extraction de texte pour des options supplémentaires.

Exemple 2 : Conversion de HTML en PDF

Avant (PdfPig):

// PdfPigdoes not support HTML vers PDFconversion
// PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML vers PDFconversion
// PdfPigdoes not support HTML vers PDFconversion
// PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML vers PDFconversion
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple met en évidence l'écart de capacité le plus important. PdfPigindique explicitement qu'il "ne prend pas en charge la conversion de HTML en PDF" et qu'il "est une bibliothèque de lecture et d'analyse de PDF, et non une bibliothèque de génération de PDF" Si vous devez créer des PDF à partir de HTML avec PdfPig, vous devrez utiliser une autre bibliothèque.

IronPDF fournit une conversion native de HTML en PDF par l'intermédiaire de ChromePdfRenderer. La méthode RenderHtmlAsPdf() accepte les chaînes HTML et les convertit en documents PDF en utilisant un moteur Chromium en interne pour un rendu précis de HTML, CSS et JavaScript. Le PdfDocument résultant peut être enregistré avec SaveAs() ou manipulé davantage avant l'enregistrement. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 3 : Lecture des métadonnées PDF

Avant (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}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Les deux bibliothèques fournissent un accès aux métadonnées avec des modèles presque identiques. PdfPigaccède aux métadonnées via document.Information et au nombre de pages via document.NumberOfPages.IronPDFutilise pdf.MetaData pour les métadonnées et pdf.PageCountpour le nombre de pages.

La migration est simple : remplacez PdfDocument.Open() par PdfDocument.FromFile(), document.Information par pdf.MetaData, et document.NumberOfPagespar pdf.PageCount. Supprimez l'enveloppe de l'énoncé utilisant puisqueIronPDFn'en a pas besoin.


Notesde migration essentielles

Modification de l'indexation des pages

PdfPig utilise une indexation basée sur 1 ;IronPDFutilise une base 0 :

// PdfPig: basé sur 1indexing
var firstPage = document.GetPage(1);  // First page

// IronPDF: basé sur 0indexing
var firstPage = pdf.Pages[0];  // First page

// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;
// PdfPig: basé sur 1indexing
var firstPage = document.GetPage(1);  // First page

// IronPDF: basé sur 0indexing
var firstPage = pdf.Pages[0];  // First page

// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La déclaration d'utilisation n'est pas requise

// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
    // ...
}

// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // Optional
// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
    // ...
}

// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // Optional
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Changement de chargement de document

// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");
// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification du nom de la propriété des métadonnées

// PdfPig: document.Information
var info = document.Information;

// IronPDF: pdf.MetaData
var info = pdf.MetaData;
// PdfPig: document.Information
var info = document.Information;

// IronPDF: pdf.MetaData
var info = pdf.MetaData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Modification de la propriété du nombre de pages

// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");

// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");
// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");

// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nouvelles capacités après la migration

Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que PdfPigne peut pas vous offrir :

Fusion de fichiers PDF

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Marques de fond

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Protection par mot de passe

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Signatures numériques

var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningReason = "Document Approval"
};
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningContact = "support@company.com",
    SigningReason = "Document Approval"
};
pdf.Sign(signature);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Résumé de la comparaison des fonctionnalités

Fonction PdfPig IronPDF
Extraction de texte
Accès aux métadonnées
Extraction d'images
Création de PDF Limité
HTML vers PDF
URL vers PDF
Fusionner des PDF
Diviser les PDF
Filigranes
Remplissage de formulaires
Protection par mot de passe
Signatures numériques
Données sur la position des mots

Liste de contrôle de la migration

Pré-migration

  • [Inventaire de toutes les utilisations de PdfPigdans la base de code
  • [Identifiez si vous avez besoin de données de positionnement au niveau des mots (envisagez une approche hybride)
  • [La traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement
  • [Planifier le stockage des clés de licenceIronPDF(variables d'environnement recommandées)
  • [Testez d'abord avec la licence d'essai d'IronPDF

Modifications du paquet

  • [ ] Supprimer le paquet PdfPig NuGet : dotnet remove package PdfPig
  • [Installer le package NuGet IronPdf : dotnet add package IronPdf

Modifications du code

  • [Mise à jour des importations de l'espace de noms (utilisant UglyToad.PdfPig;utilisant IronPdf;)
  • [Remplacer PdfDocument.Open() par PdfDocument.FromFile()
  • [Remplacer document.Information par pdf.MetaData
  • [Remplacer document.NumberOfPagespar pdf.PageCount
  • [Convertir les index de page de la base 1 à la base 0
  • [Supprimer les déclarations utilisant (facultatif,IronPDFne les exige pas)
  • [Ajouter la clé de licenceIronPDFau démarrage de l'application

Post-Migration

  • [Test du résultat de l'extraction de texte en fonction des attentes
  • [Tester tous les scénarios de génération de PDF
  • [Ajouter de nouvelles fonctionnalités (fusion, filigrane, sécurité) selon les besoins
  • [Installer les dépendances Linux en cas de déploiement sur Linux

Conclusion

En migrant de PdfPigvers IronPDF, vous élargissez vos capacités PDF en passant de la lecture seule à une solution complète de cycle de vie des PDF. Alors que PdfPigs'impose dans le domaine de la lecture et de l'extraction, IronPdf se distingue par sa polyvalence et sa gestion complète des PDF.

Les principaux changements apportés à cette migration sont les suivants :

  1. Chargement de document : PdfDocument.Open()PdfDocument.FromFile()
  2. Accès aux métadonnées : document.Informationpdf.MetaData
  3. Compte de pages : document.NumberOfPagespdf.PageCount
  4. Indexation des pages : 1 base → 0 base
  5. Modèle d'élimination : Obligatoire utilisant → Facultatif
  6. Nouvelles fonctionnalités : HTML vers PDF, fusion de PDF, filigranes, sécurité, signatures numériques, etc

Le choix entre PdfPigetIronPDFdépend en grande partie des exigences du projet. Utilisez PdfPigsi votre besoin principal est de disposer de solides capacités d'extraction et de lecture avec une licence open-source rentable. UtilisezIronPDFsi vous avez besoin d'une prise en charge complète du cycle de vie des PDF, y compris la conversion de HTML en PDF, et si votre projet nécessite des fonctions de création et d'édition de PDF robustes soutenues par une assistance professionnelle.

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers IronPdf.

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