Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment Ajouter des Numéros de Page dans un PDF en utilisant C#

"Format de Document Portable," ou PDF, est un format de fichier créé par Adobe. Les PDFs sont pratiques pour présenter des documents dont le texte et les photos doivent être formatés. 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 will 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éer un PDF à partir de matériel HTML.
  5. Enregistrer un fichier PDF sur votre ordinateur.

Qu'est-ce que IronPDF

IronPDF est un Framework PDF .NET robuste que les développeurs utilisent pour produire, visualiser et éditer des PDFs facilement. IronPDF est un outil sophistiqué qui fonctionne sur un moteur chromium en interne. Il peut convertir des fichiers HTML5, JavaScript, CSS et d'images en PDF, ajouter des en-têtes et pieds de page personnalisés, et produire des PDFs exactement tels qu'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.
  • Le processus de création de PDFs à partir d'un lien URL de site Web tout en gérant les User-Agents, les Proxys, les Cookies, les en-têtes HTTP et les variables de formulaire pour permettre la connexion à l'aide de formulaires de connexion HTML.
  • Suppression d'images à partir de fichiers PDF déjà existants.
  • Inclure des éléments d'un PDF : tableau, texte, photos, signets, filigranes, en-têtes, pieds de page, et autres.
  • La capacité de séparer et de combiner les pages de nombreux documents PDF avec facilité.

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

Installer IronPDF

Dans les outils de Visual Studio, sélectionnez le gestionnaire de packages NuGet, et vous pouvez trouver l'interface de 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 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#. Il offre plusieurs fonctionnalités, telles que le chiffrement, la fusion de PDFs, 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.

Caractéristiques d'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 packages 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 iTextSharp

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)
    {
        // Create a new HtmlToPdf renderer instance
        var renderer = new HtmlToPdf();

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

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

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

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

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

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

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

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new HtmlToPdf renderer instance
		Dim renderer = New HtmlToPdf()

		' Define the HTML content with a header
		Dim header As String = "<h1>Hello IronPDF!</h1>"

		' Render the HTML as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)

		' Define the HTML footer with page numbers
		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 PDF document to a file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Tout d'abord, nous définissons le texte HTML qui doit être transformé en PDF. Ce contenu HTML peut consister en un seul paragraphe HTML ou une page HTML entière. Ensuite, nous créons une instance de la classe HtmlToPdf, qui offre la fonction de conversion HTML en PDF RenderHtmlAsPdf.

Le contenu HTML est passé en argument à la fonction RenderHtmlAsPdf. Nous spécifions le matériel HTML qui doit être transformé en PDF. Les numéros de page sont représentés comme des espaces réservés, ou le {page} de {total-pages} dans la partie pied de page de ce texte HTML.

Le document PDF créé est retourné par cette méthode en tant qu'objet PdfDocument. En utilisant la méthode SaveAs, nous enregistrons le document PDF dans un fichier nommé "output.pdf". Alternativement, nous pouvons utiliser la fonction OpenInDefaultPDFViewer pour ouvrir le document PDF créé avec le lecteur PDF par défaut du système. Nous pouvons également utiliser la méthode ci-dessus pour ajouter des numéros de page à un fichier PDF existant.

Comment ajouter des numéros de page dans un PDF en utilisant iTextSharp en C# : Figure 2 - IronPDF : PDF généré 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 de base de comment créer un nouveau document PDF avec un numéro 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 doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

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

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

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

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

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

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

            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, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
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 doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

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

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

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

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

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

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

            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, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
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 doc As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("output.pdf", FileMode.Create))

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

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

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

	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

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

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

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

			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, 150F, document.Bottom, writer.DirectContent)
		End Sub

		Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnCloseDocument(writer, document)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Tout d'abord, nous créons un nouvel objet pour Document et PdfWriter, ce qui nous permet de créer un fichier PDF vide. Vous pouvez inclure du texte, des photos, des tableaux et d'autres types de matériel dans votre document PDF. Utilisons un Paragraph pour ajouter du texte d'exemple à des fins de démonstration. L'étape importante est maintenant d'ajouter des numéros de page au document PDF. Nous utiliserons les événements de page d'iTextSharp pour cela. Nous commençons par définir une classe qui hérite de la classe PdfPageEventHelper pour pouvoir outrepasser les méthodes qui sont appelées lorsque des événements spécifiques se produisent pendant le processus de génération de PDF.

La fonction OnEndPage est outrepassée dans cette classe pour ajouter un tableau qui contient une seule cellule avec le numéro de la page actuelle. Enfin, avant de fermer le document, nous devons connecter une instance de notre classe PageNumberEventHandler à l'objet PdfWriter. Avec cette configuration, la fonction OnEndPage de la classe PageNumberEventHandler sera appelée à chaque fois qu'une nouvelle page est ajoutée au document PDF, ajoutant le numéro de page au bas de chaque page. Nous pouvons également utiliser un document PDF existant pour ajouter des numéros de page.

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 d'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 associées, même si iTextSharp reste un concurrent solide dans le paysage des bibliothèques de manipulation PDF en C#. Avec IronPDF, vous pouvez créer des factures, des rapports et des documents produits 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 un an de maintenance logicielle sont tous inclus dans l'édition Lite d'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 plus de détails. Allez sur ce site Web pour en savoir plus sur Iron Software.

Questions Fréquemment Posées

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

Vous pouvez ajouter des numéros de page à un PDF en utilisant IronPDF en définissant un contenu HTML avec des espaces réservés pour les numéros de page et en utilisant la méthode AddHtmlFooters pour l'appliquer comme pied de page dans votre PDF.

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

IronPDF offre de solides capacités du cadre PDF.NET, prenant en charge les conversions HTML5, JavaScript, CSS, et image vers PDF, ce qui facilite la manipulation des PDF avec des en-têtes et pieds de page personnalisés.

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

iTextSharp utilise la classe PdfPageEventHelper pour gérer les numéros de page, tandis qu'IronPDF propose une approche plus simple en vous permettant de définir des pieds de page HTML avec des espaces réservés pour les numéros de page.

Puis-je manipuler les fichiers PDF existants pour ajouter des numéros de page ?

Oui, en utilisant IronPDF, vous pouvez ajouter des numéros de page aux fichiers PDF existants en rendant les pieds de page HTML avec des espaces réservés pour les numéros de page et en les fusionnant avec le document original.

Quelle est la méthode préférée pour convertir HTML en PDF ?

IronPDF est préféré pour la conversion HTML en PDF en raison de son intégration transparente avec les environnements .NET et de sa capacité à gérer HTML5, JavaScript et CSS.

Quelles sont les étapes d'installation pour utiliser IronPDF dans un projet C# ?

Vous pouvez installer IronPDF dans un projet C# en utilisant le gestionnaire de packages NuGet dans Visual Studio en recherchant 'IronPDF' et en l'ajoutant à votre projet.

Comment puis-je m'assurer que mes PDF ont des numéros de page précis en utilisant C# ?

En utilisant IronPDF, assurez-vous que vos numéros de page sont précis en définissant un modèle HTML avec des espaces réservés pour les numéros de page et en l'appliquant de manière cohérente sur toutes les pages PDF.

Y a-t-il des options de licence disponibles pour IronPDF ?

IronPDF propose une édition 'Lite' avec une licence permanente, des options de mise à niveau, et un an de maintenance logicielle, ainsi qu'une période d'évaluation avec watermark pour l'évaluation.

Où puis-je trouver des exemples détaillés et la documentation pour utiliser IronPDF ?

Une documentation complète et des exemples pour utiliser IronPDF sont disponibles sur leur site officiel à ironpdf.com.

IronPDF est-il entièrement compatible avec .NET 10, et puis-je utiliser les fonctionnalités de numérotation des pages dans un projet .NET 10 ?

Oui, IronPDF prend en charge .NET 10 et toutes ses fonctionnalités, y compris la numérotation des pages via des espaces réservés dans les en-têtes ou les pieds de page, fonctionnent nativement dans les projets .NET 10 sans aucune configuration particulière ni solution de contournement.

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