Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C#

"Format de Document Portable," ou PDF, est un format de fichier créé par Adobe. Les PDFs sont utiles pour présenter des documents dont les textes et les images doivent être formatés de manière cohérente. Dans le monde actuel, les fichiers PDF sont essentiels et sont utilisés pour la création de documents et la facturation dans tous les secteurs d'entreprise. Grâce aux nombreuses bibliothèques PDF disponibles sur le marché, la création de PDFs est devenue pratiquement instinctive. Pour choisir la bibliothèque PDF appropriée pour vous, il est crucial de peser les avantages et les caractéristiques de chacune avant d'en utiliser une pour votre projet.

Dans cet article, nous allons voir comment ajouter des numéros de page dans un PDF en utilisant iTextSharp C#. Also, we are going to compare iTextSharp with IronPDF.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp C#

  1. Créez un nouveau projet C# en utilisant n'importe quel IDE.
  2. Créez un nouvel objet PDF.
  3. Ajoutez des numéros de page dans le pied de page HTML.
  4. Créez un PDF à partir de contenu HTML.
  5. Enregistrez le fichier PDF sur votre ordinateur.

Qu'est-ce que IronPDF

IronPDF est un cadre robuste PDF .NET Framework que les développeurs utilisent pour créer, voir et éditer facilement des PDFs. IronPDF est un outil sophistiqué qui fonctionne sur un moteur chromium en interne. Il peut convertir des fichiers HTML5, JavaScript, CSS et image en PDF, ajouter des en-têtes et pieds de page personnalisés, et produire des PDFs exactement comme ils apparaissent dans un navigateur. De nombreux formats en ligne et réseaux, y compris HTML, ASPX, Vue Razor et MVC, sont pris en charge par IronPDF.

Fonctionnalités d'IronPDF

  • Utilisation du code .NET C# pour créer, lire et éditer facilement des fichiers PDF.
  • Création de PDFs à partir d'un lien URL de site web tout en gérant les Agents Utilisateurs, Proxies, Cookies, en-têtes HTTP et variables de formulaire pour permettre la connexion en utilisant des formulaires de connexion HTML.
  • Extraction d'images de fichiers PDF existants.
  • Inclusion d'éléments dans un PDF : tableau, texte, images, signets, filigranes, en-têtes, pieds de page, et plus encore.
  • Capacité à diviser et combiner des pages de plusieurs documents PDF facilement.

Pour en savoir plus sur la documentation IronPDF, consultez ici.

Installer IronPDF

Dans Outils Visual Studio, sélectionnez le Gestionnaire de Paquets NuGet, et vous pouvez trouver l'interface en ligne de commande visuelle sous Outils. La commande ci-dessous doit être entrée dans l'onglet du terminal de gestion des paquets.

Install-Package IronPdf

Ou nous pouvons utiliser la méthode du gestionnaire de paquets. L'installation du paquet directement dans la solution est possible avec l'option Gestionnaire de Paquets NuGet de Visual Studio. Une boîte de recherche est disponible pour localiser les paquets sur le site web de NuGet. Nous n'avons qu'à chercher "IronPDF" dans le gestionnaire de paquets, comme l'illustre la capture d'écran ci-dessous :

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 1 - Installation de IronPDF depuis le gestionnaire de paquets

La liste des résultats de recherche pertinents est affichée dans l'image ci-dessus. Pour que le paquet soit installé sur votre système, veuillez effectuer les sélections nécessaires.

Maintenant que le paquet a été téléchargé et installé, il peut être utilisé dans le projet actuel.

Qu'est-ce que iTextSharp

iTextSharp est une bibliothèque flexible pour produire et modifier des documents PDF en C#. Elle offre plusieurs fonctionnalités, telles que le chiffrement, la fusion de PDF, l'extraction de texte et d'images, et bien plus encore. iTextSharp est un outil efficace pour de nombreuses tâches, y compris l'ajout de numéros de page aux PDFs.

Fonctionnalités de iTextSharp

  • Une API pour générer des documents PDF est disponible à travers la bibliothèque iText.
  • Les chaînes HTML et XML peuvent toutes deux être analysées en fichiers PDF en utilisant le programme iText.
  • Nous pouvons ajouter des signets, des numéros de page et des marqueurs à nos documents PDF en utilisant la bibliothèque iText.
  • Nous pouvons également diviser un document PDF en plusieurs PDFs ou fusionner plusieurs documents PDF en un seul PDF en utilisant la bibliothèque iText.
  • Nous pouvons modifier des formulaires PDF avec iText.

Installer iTextSharp

Utilisez le gestionnaire de paquets NuGet pour rechercher iText. Les installations iText7 et iText.pdfhtml sont requises car les fonctionnalités de iText sont réparties sur plusieurs paquets.

Si vous choisissez l'interface en ligne de commande visuelle, les paquets suivants doivent être installés :

Install-Package iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
SHELL

Puisque iText 7 est la version la plus récente, c'est celle que nous utilisons dans notre solution.

Ajouter des numéros de page en utilisant IronPDF

Ajouter des numéros de page aux fichiers PDF est rendu simple grâce à la bibliothèque complète d'IronPDF. Pour illustrer, voir le code ci-dessous :

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the output PDF file
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the output PDF file
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize the IronPdf renderer
		Dim renderer = New IronPdf.HtmlToPdf()

		' HTML content to convert to PDF
		Dim header As String = "<h1>Hello Ironpdf!</h1>"

		' Render the HTML content to PDF
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)

		' Define the footer with page number placeholders
		Dim htmlFooter As New HtmlHeaderFooter With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}

		' Add footer to the PDF
		pdf.AddHtmlFooters(htmlFooter)

		' Save the output PDF file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication

  1. Initialiser le Rendu : Nous créons une instance de HtmlToPdf, qui fournit la fonctionnalité de conversion HTML en PDF.
  2. Définir le Contenu HTML : Le contenu HTML devant être converti en PDF est spécifié.
  3. Rendre le Contenu HTML : La fonction RenderHtmlAsPdf est utilisée pour convertir le HTML en document PDF.
  4. Définir le Pied de Page : Les numéros de page sont représentés comme des espaces réservés dans le texte du pied de page HTML.
  5. Ajouter le Pied de Page et Sauvegarder le PDF : Appliquez le pied de page au document et sauvegardez-le en tant que fichier PDF.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 2 - IronPDF : PDF de sortie avec numéros de page

Pour en savoir plus sur le code IronPDF, consultez ici.

Ajouter des numéros de page en utilisant iTextSharp

Tout d'abord, utilisons iTextSharp pour générer un nouveau document PDF. Voici une illustration basique de comment créer un nouveau document PDF avec des numéros de page :

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

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            document.Open();
            document.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            document.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table for the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            // Add page number to the table cell
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
    }
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            document.Open();
            document.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            document.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table for the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            // Add page number to the table cell
            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
        }
    }
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim document As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))

			' Open the document to add content
			document.Open()
			document.Add(New Paragraph("Hello, world!"))

			' Attach page number event to PDF writer
			writer.PageEvent = New PageNumberEventHandler()

			' Close the document
			document.Close()
		End Sub
	End Class

	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

		Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnEndPage(writer, document)

			' Create a table for the page number
			Dim table As New PdfPTable(1)
			table.TotalWidth = 300F
			table.HorizontalAlignment = Element.ALIGN_CENTER

			' Add page number to the table cell
			Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
			cell.Border = 0
			table.AddCell(cell)

			' Write the table at the bottom of the page
			table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explication

  1. Créer un Document PDF : Initialisez un nouveau Document et PdfWriter pour produire un fichier PDF vide.
  2. Ajouter du Contenu : Ajoutez du contenu de base tel que des paragraphes au document.
  3. Numérotation des Pages : Nous utilisons le gestionnaire d'événements d'iTextSharp pour inclure des numéros de page. Nous créons une classe personnalisée héritant de PdfPageEventHelper.
  4. Redéfinir OnEndPage : Dans la classe personnalisée, redéfinissez la méthode OnEndPage pour ajouter des numéros de page en bas de chaque page.
  5. Fermer le Document : Finalisez le document en le fermant.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 3 - iTextSharp : PDF de sortie avec numéros de page

Conclusion

En résumé, la spécialisation, l'utilisabilité et l'intégration transparente de IronPDF avec les environnements .NET le positionnent comme la meilleure option pour les scénarios nécessitant une conversion HTML en PDF et des fonctionnalités connexes, même si iTextSharp est toujours un concurrent de taille dans le paysage des bibliothèques de manipulation PDF en C#. Avec IronPDF, vous pouvez créer des factures, des rapports et des documents générés dynamiquement à partir de contenu HTML avec la facilité, l'efficacité et l'adaptabilité nécessaires pour réussir dans l'environnement de développement moderne.

Une licence permanente, des options de mise à niveau, et une année de maintenance logicielle sont toutes incluses dans l'édition Lite de IronPDF. La période d'essai filigranée permet aux utilisateurs d'évaluer le produit dans des environnements pratiques. Visitez la page de licence pour en savoir plus. Pour plus de détails sur Iron Software, visitez leur site web.

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

Questions Fréquemment Posées

Comment puis-je ajouter des numéros de page à un PDF en utilisant iTextSharp en C# ?

Pour ajouter des numéros de page en utilisant iTextSharp en C#, vous pouvez créer une classe personnalisée qui hérite de PdfPageEventHelper. Redéfinissez la méthode OnEndPage pour insérer des numéros de page et attacher cet événement à l'instance PdfWriter.

Pourquoi les PDF sont-ils cruciaux dans divers secteurs ?

Les PDF maintiennent un formatage cohérent du texte et des images, ce qui est essentiel pour la création de documents et la facturation dans les secteurs d'entreprise. Ils sont fiables pour présenter les documents de manière professionnelle.

Quels sont les avantages de l'utilisation d'IronPDF pour la manipulation de PDF ?

IronPDF offre des fonctionnalités robustes pour créer, visualiser et éditer des PDF dans les environnements .NET. Il excelle dans la conversion de HTML, JavaScript et images en PDF et prend en charge les en-têtes, pieds de page et filigranes personnalisés.

IronPDF peut-il gérer la conversion HTML en PDF avec prise en charge de JavaScript ?

Oui, IronPDF peut convertir du contenu HTML, y compris JavaScript, en PDF tout en maintenant la mise en page et la fonctionnalité telles qu'elles apparaissent dans un navigateur web.

Comment puis-je installer IronPDF dans un projet C# ?

Vous pouvez installer IronPDF en utilisant le gestionnaire de paquets NuGet dans Visual Studio. Il suffit de rechercher 'IronPDF' et de l'ajouter à votre projet pour commencer à utiliser ses fonctionnalités.

Quelle est l'importance de la période d'essai offerte par IronPDF ?

La période d'essai de IronPDF permet aux développeurs d'explorer ses fonctionnalités et sa fonctionnalité dans des applications réelles avec un essai filigrané, les aidant à évaluer sa pertinence avant d'acheter une licence.

Comment se compare iTextSharp à IronPDF pour l'ajout de numéros de page ?

Alors qu'iTextSharp utilise la gestion d'événements pour ajouter des numéros de page, IronPDF fournit une approche plus simple avec des modèles HTML pour les en-têtes et pieds de page, ce qui le rend idéal pour les développeurs .NET cherchant à simplifier l'utilisation.

Quels sont les éléments à prendre en compte lors du choix d'une bibliothèque PDF pour un projet C# ?

Considérez les fonctionnalités offertes par chaque bibliothèque. Par exemple, IronPDF se spécialise dans la conversion HTML en PDF et s'intègre bien aux frameworks .NET, tandis qu'iTextSharp offre de solides capacités de chiffrement et d'extraction de texte.

iTextSharp est-il compatible avec .NET 10 pour l'ajout de numéros de page, ou dois-je utiliser iText 7 ?

iTextSharp (version 5.x) est officiellement obsolète et en mode maintenance ; il ne reçoit que des correctifs de sécurité et aucune nouvelle fonctionnalité n'est ajoutée. Il ne cible pas directement .NET 10 et son utilisation avec les versions récentes de .NET peut entraîner des problèmes de compatibilité. Pour les nouveaux projets ou ceux qui migrent vers .NET 10, iText 7 (ou iText Core) est fortement recommandé car il prend en charge les frameworks les plus récents et offre des améliorations par rapport à iTextSharp. ([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))

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