Comment ajouter des numéros de page aux PDFs en utilisant C#

Comment ajouter des numéros de page à un PDF à l'aide de C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Les numéros de page sont des numéros séquentiels attribués à chaque page individuelle dans un document PDF. Les numéros de page sont l'un des composants les plus importants dans un document pour la navigation. Ils aident les lecteurs à localiser des pages spécifiques et à déterminer quelle page ils lisent. De plus, les numéros de page permettent une citation et une référence faciles du contenu dans le document. Avec IronPDF, ajouter des numéros de page à votre PDF est un processus simple.

en-tête:2(Démarrage rapide : Ajoutez facilement des numéros de page aux PDF)

Ajoutez facilement des numéros de page à vos documents PDF en utilisant IronPDF. Avec seulement quelques lignes de code C#, vous pouvez insérer des numéros de page dynamiques dans les en-têtes ou pieds de page, personnaliser leur emplacement et spécifier les pages sur lesquelles ils doivent apparaître. Que vous traitiez de nouveaux PDF ou de ceux existants, IronPDF fournit une solution simple et flexible pour améliorer la navigation et l'organisation des documents. Suivez le guide pour implémenter rapidement la numérotation des pages dans votre projet.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { HtmlFooter = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<center>{page}of{total-pages}</center>", DrawDividerLine = true } } }
         .RenderHtmlAsPdf("<h1>My multi‑page document</h1><div style='page‑break‑after:always;'></div><h1>Page 2</h1>")
         .SaveAs("numbered‑pages.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Exemple d'ajout de numéros de page

En utilisant les chaînes de remplacement {page} et {total-pages} avec la classe TextHeaderFooter ou HtmlHeaderFooter, vous pouvez ajouter le numéro de page courant et le nombre total de pages.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-basic.cs
using IronPdf;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};

// Create html footer
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render a new PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Add header and footer
pdf.AddTextHeaders(textHeader);
pdf.AddHtmlFooters(htmlFooter);

pdf.SaveAs("pdfWithPageNumber.pdf");
Imports IronPdf

' Create text header
Private textHeader As New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"}

' Create html footer
Private htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

' Render a new PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")

' Add header and footer
pdf.AddTextHeaders(textHeader)
pdf.AddHtmlFooters(htmlFooter)

pdf.SaveAs("pdfWithPageNumber.pdf")
$vbLabelText   $csharpLabel

Le PDF de sortie provenant du code ci-dessus est montré ci-dessous :

Vous pouvez également ajouter directement les en-têtes et pieds de page avec les chaînes de remplacement de numéro de page dans les options de rendu de ChromePdfRenderer.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-chromerenderer.cs
using IronPdf;

// Add header and footer to rendering options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

string html = @"
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>";

// Render new PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf");
Imports IronPdf

' Add header and footer to rendering options
Private renderer As New ChromePdfRenderer()
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

Dim html As String = "
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>"

' Render new PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf")
$vbLabelText   $csharpLabel

Exemple d'ajout de numéros de page à des pages spécifiques

Avec IronPDF, vous pouvez décider où ajouter des numéros de page. Vous pouvez les faire commencer à une certaine page ou sur des groupes de pages spécifiques, comme sur les pages d'index pairs.

Préparons notre document PDF pour appliquer les numéros de page.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-preparation.cs
using IronPdf;
using System.Linq;
using System.Collections.Generic;

string multi_page_html = @"
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>";

// Create header
HtmlHeaderFooter header = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(multi_page_html);

// Create a Page Range 0..6
var allPageIndices = Enumerable.Range(0, pdf.PageCount);
Imports IronPdf
Imports System.Linq
Imports System.Collections.Generic

Private multi_page_html As String = "
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>"

' Create header
Private header As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

' Render PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(multi_page_html)

' Create a Page Range 0..6
Private allPageIndices = Enumerable.Range(0, pdf.PageCount)
$vbLabelText   $csharpLabel

Index des Pages Paires

À partir de l'exemple de code précédent, le code suivant appliquera des numéros de page exclusivement aux index des pages paires. Étant donné que nous filtrons pour les index de pages paires, le PDF résultant appliquera des numéros uniquement sur les pages d'index impair. Les index de pages commencent à zéro, tandis que les numéros de page commencent à un.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-even-pages.cs
// Get even page indexes (resulting in odd page numbers)
var evenPageIndices = allPageIndices.Where(i => i % 2 == 0);

pdf.AddHtmlHeaders(header, 1, evenPageIndices);
pdf.SaveAs("EvenPages.pdf");
' Get even page indexes (resulting in odd page numbers)
Dim evenPageIndices = allPageIndices.Where(Function(i) i Mod 2 = 0)

pdf.AddHtmlHeaders(header, 1, evenPageIndices)
pdf.SaveAs("EvenPages.pdf")
$vbLabelText   $csharpLabel

Index des Pages Impaires

Ajoutez des numéros de page spécifiquement aux pages avec des numéros d'index impair.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-odd-pages.cs
// Get odd page indexes (resulting in even page numbers)
var oddPageIndexes = allPageIndices.Where(i => i % 2 != 0);

pdf.AddHtmlHeaders(header, 1, oddPageIndexes);
pdf.SaveAs("OddPages.pdf");
' Get odd page indexes (resulting in even page numbers)
Dim oddPageIndexes = allPageIndices.Where(Function(i) i Mod 2 <> 0)

pdf.AddHtmlHeaders(header, 1, oddPageIndexes)
pdf.SaveAs("OddPages.pdf")
$vbLabelText   $csharpLabel

Dernière Page Uniquement

Ajoutez un numéro de page uniquement à la dernière page.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-last-page-only.cs
// Last page only
var lastPageIndex = new List<int>() { pdf.PageCount - 1 };

pdf.AddHtmlHeaders(header, 1, lastPageIndex);
pdf.SaveAs("LastPageOnly.pdf");
' Last page only
Dim lastPageIndex = New List(Of Integer)() From {pdf.PageCount - 1}

pdf.AddHtmlHeaders(header, 1, lastPageIndex)
pdf.SaveAs("LastPageOnly.pdf")
$vbLabelText   $csharpLabel

Première Page Uniquement

Ajoutez un numéro de page uniquement à la première page.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-first-page-only.cs
// First page only
var firstPageIndex = new List<int>() { 0 };

pdf.AddHtmlHeaders(header, 1, firstPageIndex);
pdf.SaveAs("FirstPageOnly.pdf");
' First page only
Dim firstPageIndex = New List(Of Integer)() From {0}

pdf.AddHtmlHeaders(header, 1, firstPageIndex)
pdf.SaveAs("FirstPageOnly.pdf")
$vbLabelText   $csharpLabel

Sauter la Première Page

Sautez la première page lors de l'application de l'en-tête.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page.cs
// Skip the first page
var skipFirstPage = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 1, skipFirstPage);
pdf.SaveAs("SkipFirstPage.pdf");
' Skip the first page
Dim skipFirstPage = allPageIndices.Skip(1)

pdf.AddHtmlHeaders(header, 1, skipFirstPage)
pdf.SaveAs("SkipFirstPage.pdf")
$vbLabelText   $csharpLabel

Sauter la Première Page et Ne pas la Compter

Sautez la première page et commencez la numérotation à partir de la deuxième page, la considérant comme la page 1.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page-and-dont-count-it.cs
// Skip the first page and start numbering the second page as page 1
var skipFirstPageAndDontCountIt = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt);
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf");
' Skip the first page and start numbering the second page as page 1
Dim skipFirstPageAndDontCountIt = allPageIndices.Skip(1)

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt)
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf")
$vbLabelText   $csharpLabel

Pour explorer toutes les options de métadonnées, veuillez visiter le Guide des En-têtes et Pieds de Page d'IronPDF.

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 C# en utilisant la bibliothèque IronPDF. Tout d'abord, téléchargez la bibliothèque PDF C# depuis NuGet. Ensuite, chargez un PDF existant ou créez-en un nouveau, et utilisez les chaînes de remplacement {page} et {total-pages} dans l'en-tête ou le pied de page pour insérer des numéros de page. Enfin, enregistrez le PDF mis à jour.

Puis-je personnaliser le placement des numéros de page dans mon PDF?

Oui, avec IronPDF, vous pouvez personnaliser le placement des numéros de page dans votre PDF. Vous pouvez choisir d'ajouter des numéros de page uniquement à des pages spécifiques, telles que les pages d'index pair ou impair, ou les appliquer uniquement à la première ou dernière page.

Comment ajouter des numéros de page uniquement aux pages paires d'un PDF?

Pour ajouter des numéros de page uniquement aux pages paires d'un PDF en utilisant IronPDF, filtrez les pages par index pairs et configurez l'en-tête ou le pied de page avec les chaînes de remplacement de numéros de page désirées. Le numéro de page sera ensuite appliqué aux pages avec des numéros d'index pairs.

Est-il possible de commencer la numérotation des pages à partir de la deuxième page d'un PDF?

Oui, en utilisant IronPDF, vous pouvez ignorer la première page et commencer la numérotation à partir de la deuxième page. Pour ce faire, configurez l'en-tête ou le pied de page pour qu'il s'applique à partir de la deuxième page et utilisez des chaînes de remplacement pour gérer la séquence de numérotation.

Comment puis-je ajouter des numéros de page uniquement à la dernière page d'un PDF?

Pour ajouter des numéros de page uniquement à la dernière page d'un PDF en utilisant IronPDF, vous pouvez configurer l'en-tête ou le pied de page pour qu'il s'applique spécifiquement à la dernière page. Cela peut être réalisé en se référant à l'indice de la dernière page et en définissant les chaînes de remplacement pour les numéros de page.

Quels sont les avantages de l'utilisation de chaînes de remplacement dans la numérotation des pages PDF?

Les chaînes de remplacement comme {page} et {total-pages} permettent l'insertion dynamique du numéro de page actuel et du nombre total de pages. Cela rend la gestion de la numérotation des pages flexible et efficace, surtout lorsque la structure du document change. IronPDF utilise ces chaînes de remplacement pour simplifier le processus de numérotation des pages.

Comment puis-je ajouter des numéros de page à un PDF sans affecter la première page?

Pour ajouter des numéros de page à un PDF sans affecter la première page en utilisant IronPDF, configurez les en-têtes ou les pieds de page pour qu'ils commencent à partir de la deuxième page. Cette approche assure que la première page reste sans numéro alors que les pages suivantes reçoivent des numéros de page.

IronPDF peut-il gérer les numéros de page pour le contenu HTML et les PDFs existants?

Oui, IronPDF peut gérer les numéros de page pour le contenu HTML et les PDFs existants. Vous pouvez rendre le HTML en tant que PDF et appliquer des numéros de page en utilisant IronPdf.ChromePdfRenderer ou modifier un document PDF existant pour inclure des numéros de page dans les en-têtes et les pieds de page.

IronPDF est-il entièrement compatible avec .NET 10 pour l'ajout de numéros de page ?

Oui, IronPDF est entièrement compatible avec .NET 10, ce qui vous permet d'ajouter des numéros de page à l'aide d'en-têtes ou de pieds de page et des chaînes de caractères d'espace réservé {page} et {total-pages} dans les projets .NET 10, tout comme dans les versions .NET précédentes.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 16,493,056 | Version: 2025.11 vient de sortir