Comment ajouter des en-têtes et des pieds de page dans des PDFs à l'aide d'Iron PDF

How to Add Headers and Footers

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

Besoin d'inclure des numéros de page, un logo d'entreprise ou une date en haut ou en bas de chaque page d'un document PDF ? Avec les en-têtes et les pieds de page, vous pouvez le faire ! Avec IronPDF, il est très simple d'appliquer des en-têtes et des pieds de page aux PDFs dans votre projet C#.

en-tête-rapide:2(Démarrage rapide : Ajouter des en-têtes et des pieds de page aux PDFs en C#)

Ajoutez sans effort des en-têtes et des pieds de page à vos documents PDF en utilisant IronPDF en C#. Ce guide rapide vous montre comment appliquer des en-têtes et pieds de page basés sur du texte avec numéros de page et texte personnalisé en quelques secondes. Utilisez les méthodes AddTextHeaders et AddTextFooters pour améliorer la présentation de votre PDF rapidement. Enregistrez votre PDF mis à jour avec un code minimal, assurant une finition professionnelle de vos documents. Parfait pour les développeurs recherchant un moyen rapide et efficace de gérer les en-têtes et les pieds de page de documents avec IronPDF.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { TextHeader = new IronPdf.TextHeaderFooter { CenterText = "Report • {date}" }, TextFooter = new IronPdf.TextHeaderFooter { RightText = "Page {page} of {total‑pages}" } } }
        .RenderHtmlAsPdf("<h1>Hello World!</h1>")
        .SaveAs("withHeadersFooters.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Workflow minimal (5 étapes)

  1. Téléchargez la bibliothèque C# pour ajouter des en-têtes et des pieds de page
  2. Chargez un PDF existant ou rendez-en un nouveau
  3. Utilisez les méthodes AddTextHeaders et AddTextFooters pour ajouter des en-têtes et des pieds de page en texte
  4. Utilisez les méthodes AddHtmlHeaders et AddHtmlFooters pour ajouter des en-têtes et des pieds de page en HTML
  5. Ajoutez des en-têtes et des pieds de page au moment du rendu en configurant les options de rendu

Exemple d'ajout d'un en-tête/pied de page en texte

Pour créer un en-tête/pied de page seulement en texte, instanciez un objet TextHeaderFooter, ajoutez le texte désiré, et ajoutez l'objet à votre PDF.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-add-textheaderfooter.cs
using IronPdf;

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

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

// Create text footer
TextHeaderFooter textFooter = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Add text header and footer to the PDF
pdf.AddTextHeaders(textHeader);
pdf.AddTextFooters(textFooter);

pdf.SaveAs("addTextHeaderFooter.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Alternativement, vous pouvez ajouter directement un en-tête/pied de page en utilisant les options de rendu du moteur de rendu. Cela ajoutera l'en-tête et le pied de page en texte pendant le processus de rendu.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-render-with-textheaderfooter.cs
using IronPdf;

// Instantiate renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create header and add to rendering options
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "This is the header!",
};


// Create footer and add to rendering options
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Render PDF with header and footer
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
pdf.SaveAs("renderWithTextHeaderFooter.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Personnaliser les propriétés de texte et de séparateur

Dans la classe TextHeaderFooter, vous avez la possibilité de définir le texte pour les positions gauche, centre et droite. De plus, vous pouvez personnaliser le type et la taille de la police du texte et ajouter un séparateur avec une couleur personnalisée en configurant les propriétés pertinentes.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-textheaderfooter-options.cs
using IronPdf;
using IronPdf.Font;
using IronSoftware.Drawing;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "Center text", // Set the text in the center
    LeftText = "Left text", // Set left-hand side text
    RightText = "Right text", // Set right-hand side text
    Font = IronSoftware.Drawing.FontTypes.ArialBoldItalic, // Set font
    FontSize = 16, // Set font size
    DrawDividerLine = true, // Draw Divider Line
    DrawDividerLineColor = Color.Red, // Set color of divider line
};
Imports IronPdf
Imports IronPdf.Font
Imports IronSoftware.Drawing

' Create text header
Private textHeader As New TextHeaderFooter With {
	.CenterText = "Center text",
	.LeftText = "Left text",
	.RightText = "Right text",
	.Font = IronSoftware.Drawing.FontTypes.ArialBoldItalic,
	.FontSize = 16,
	.DrawDividerLine = True,
	.DrawDividerLineColor = Color.Red
}
$vbLabelText   $csharpLabel

Sortie de l'en-tête de texte

class="content-img-align-center">
class="center-image-wrapper"> En-tête de texte

You can see what font types are available by default in the IronPDF API Reference.

Définir les marges pour l'en-tête/le pied de page texte

Par défaut, l'en-tête et le pied de page en texte dans IronPDF viennent avec des marges prédéfinies. Si vous souhaitez que l'en-tête texte s'étende sur toute la largeur du document PDF, vous pouvez spécifier des valeurs de marge de 0. Cela peut être réalisé soit en définissant directement les marges dans les fonctions AddTextHeaders et AddTextFooters ou via RenderingOptions dans ChromePdfRenderer.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-textheaderfooter-margins.cs
using IronPdf;

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

TextHeaderFooter header = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

TextHeaderFooter footer = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

pdf.AddTextHeaders(header, 35, 30, 25); // Left Margin = 35, Right Margin  = 30, Top Margin = 25
pdf.AddTextFooters(footer, 35, 30, 25); // Margin values are in mm
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Si vous ajoutez des valeurs de marge dans RenderingOptions de ChromePdfRenderer, ces marges seront également appliquées à l'en-tête et au pied de page.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-rendering-options-margins.cs
using IronPdf;

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();

TextHeaderFooter header = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

TextHeaderFooter footer = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Margin values are in mm
renderer.RenderingOptions.MarginRight = 30;
renderer.RenderingOptions.MarginLeft = 30;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add header and footer to renderer
renderer.RenderingOptions.TextHeader = header;
renderer.RenderingOptions.TextFooter = footer;

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
Imports IronPdf

' Instantiate renderer and create PDF
Private renderer As New ChromePdfRenderer()

Private header As New TextHeaderFooter With {.CenterText = "This is the header!"}

Private footer As New TextHeaderFooter With {.CenterText = "This is the footer!"}

' Margin values are in mm
renderer.RenderingOptions.MarginRight = 30
renderer.RenderingOptions.MarginLeft = 30
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25

' Add header and footer to renderer
renderer.RenderingOptions.TextHeader = header
renderer.RenderingOptions.TextFooter = footer

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
$vbLabelText   $csharpLabel

La propriété UseMarginsOnHeaderAndFooter sur RenderingOptions n'est pas adaptée à ce cas d'utilisation. Elle applique les mêmes valeurs de marge à l'en-tête, au pied de page et au contenu principal, ce qui peut amener l'en-tête à chevaucher le corps du document. Cette propriété est principalement destinée à l'application d'en-têtes et de pieds de page sur les PDFs existants en utilisant la méthode AddTextHeadersAndFooters.

Dimensionnement de marge dynamique

La marge statique posait un problème lorsque le contenu de l'en-tête variait entre les documents. Des ajustements étaient nécessaires non seulement pour les marges de l'en-tête et du pied de page mais aussi pour la marge HTML principale pour accommoder différentes tailles d'en-tête et de pied de page. Par conséquent, nous avons mis en œuvre une fonctionnalité de dimensionnement de marge dynamique où la hauteur de l'en-tête et du pied de page s'ajustera dynamiquement en fonction du contenu, et le HTML principal se repositionnera en conséquence. Veuillez utiliser le code ci-dessous pour vérifier la fonctionnalité :

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-dynamic-marigns.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"<div style='background-color: #4285f4; color: white; padding: 15px; text-align: center;'>
                    <h1>Example header</h1> <br>
                    <p>Header content</p>
                    </div>",
    // Enable the dynamic height feature
    MaxHeight = HtmlHeaderFooter.FragmentHeight,
};

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Main HTML content</h1>");
pdf.SaveAs("dynamicHeaderSize.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
	.HtmlFragment = "<div style='background-color: #4285f4; color: white; padding: 15px; text-align: center;'>
                    <h1>Example header</h1> <br>
                    <p>Header content</p>
                    </div>",
	.MaxHeight = HtmlHeaderFooter.FragmentHeight
}

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Main HTML content</h1>")
pdf.SaveAs("dynamicHeaderSize.pdf")
$vbLabelText   $csharpLabel

Métadonnées pour l'en-tête/le pied de page texte

Vous pouvez facilement ajouter des métadonnées telles que des numéros de page, la date et le titre d'un PDF, en incorporant des chaînes de caractères de substitution dans votre texte. Voici toutes les options de métadonnées disponibles :

  • {page} : Numéro de page actuel.
  • {total-pages} : Nombre total de pages.
  • {url} : URL Web à partir de laquelle le document PDF a été rendu.
  • {date} : Date actuelle.
  • {time} : Heure actuelle.
  • {html-title} : Titre HTML spécifié dans la balise title en HTML.
  • {pdf-title} : Titre PDF spécifié dans les métadonnées PDF.

Pour en savoir plus sur {page} et {total-pages}, veuillez consulter le guide How-To Guide des numéros de page IronPDF.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-mail-merge.cs
using IronPdf;

// Create header and footer
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "{page} of {total-pages}",
    LeftText = "Today's date: {date}",
    RightText = "The time: {time}",
};

TextHeaderFooter textFooter = new TextHeaderFooter
{
    CenterText = "Current URL: {url}",
    LeftText = "Title of the HTML: {html-title}",
    RightText = "Title of the PDF: {pdf-title}",
};
Imports IronPdf

' Create header and footer
Private textHeader As New TextHeaderFooter With {
	.CenterText = "{page} of {total-pages}",
	.LeftText = "Today's date: {date}",
	.RightText = "The time: {time}"
}

Private textFooter As New TextHeaderFooter With {
	.CenterText = "Current URL: {url}",
	.LeftText = "Title of the HTML: {html-title}",
	.RightText = "Title of the PDF: {pdf-title}"
}
$vbLabelText   $csharpLabel

Exemple d'ajout d'un en-tête/pied de page HTML

Vous pouvez encore personnaliser votre en-tête/pied de page en utilisant HTML et CSS. Pour créer un en-tête/pied de page HTML, utilisez la classe HtmlHeaderFooter. Si vous souhaitez conserver les styles CSS d'une feuille de style CSS, assurez-vous de définir LoadStylesAndCSSFromMainHtmlDocument = true dans les propriétés de la classe.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-htmlheaderfooter.cs
using IronPdf;

string headerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>";

string footerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>";

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

// Create header and footer
HtmlHeaderFooter htmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Add to PDF
pdf.AddHtmlHeaders(htmlHeader);
pdf.AddHtmlFooters(htmlFooter);
Imports IronPdf

Private headerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>"

Private footerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>"

' Instantiate renderer and create PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")

' Create header and footer
Private htmlHeader As New HtmlHeaderFooter With {
	.HtmlFragment = headerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

Private htmlFooter As New HtmlHeaderFooter With {
	.HtmlFragment = footerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

' Add to PDF
pdf.AddHtmlHeaders(htmlHeader)
pdf.AddHtmlFooters(htmlFooter)
$vbLabelText   $csharpLabel

Similaire à l'en-tête et au pied de page en texte, les méthodes AddHtmlHeaders et AddHtmlFooters montrées ci-dessus ont des marges prédéfinies appliquées. Pour appliquer des marges personnalisées, utilisez une surcharge des fonctions avec les valeurs de marge spécifiées. Pour couvrir tout le contenu sans aucune marge, définissez les marges dans la fonction de surcharge à 0.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-htmlheaderfooter-margins.cs
// Add to PDF
pdf.AddHtmlHeaders(header, 0, 0, 0);
pdf.AddHtmlFooters(footer, 0, 0, 0);
' Add to PDF
pdf.AddHtmlHeaders(header, 0, 0, 0)
pdf.AddHtmlFooters(footer, 0, 0, 0)
$vbLabelText   $csharpLabel

L'ajout d'en-têtes et de pieds de page peut également être effectué directement par le biais des options de rendu du moteur de rendu. Cela ajoutera l'en-tête et le pied de page HTML pendant le processus de rendu.

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-render-with-htmlheaderfooter.cs
using IronPdf;

string headerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>";

string footerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>";

// Instantiate renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create header and footer and add to rendering options
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Render PDF with header and footer
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
Imports IronPdf

Private headerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>"

Private footerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>"

' Instantiate renderer
Private renderer As New ChromePdfRenderer()

' Create header and footer and add to rendering options
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
	.HtmlFragment = headerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
	.HtmlFragment = footerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

' Render PDF with header and footer
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
$vbLabelText   $csharpLabel

Choisir entre les en-têtes/les pieds de page texte et HTML

Lors de la décision entre les en-têtes/les pieds de page texte et HTML, considérez les compromis. Si vous privilégiez un rendu PDF plus rapide, optez pour les en-têtes/les pieds de page texte. En revanche, si la personnalisation et le style sont essentiels, optez pour les en-têtes/les pieds de page HTML. La différence de temps de rendu entre les en-têtes/les pieds de page texte et HTML n'est pas trop significative lorsque les en-têtes/les pieds de page HTML ne contiennent pas beaucoup de contenu. Cependant, elle augmente à mesure que la taille et le nombre d'éléments dans les en-têtes/les pieds de page HTML augmentent.

Prêt à voir ce que vous pouvez faire d'autre ? Consultez notre page de tutoriel ici : Créer des PDF

Questions Fréquemment Posées

Comment puis-je ajouter des en-têtes et pieds de page à un document PDF dans un projet C#?

Pour ajouter des en-têtes et pieds de page à un document PDF dans un projet C#, utilisez IronPDF. Tout d'abord, téléchargez la bibliothèque IronPDF, puis chargez ou créez un PDF. Vous pouvez utiliser des méthodes comme AddTextHeaders et AddTextFooters pour les en-têtes/pieds de page textuels ou AddHtmlHeaders et AddHtmlFooters pour les options basées sur HTML.

Quelles méthodes sont disponibles pour ajouter des en-têtes ou pieds de page textuels et HTML en C#?

Dans IronPDF, vous pouvez utiliser AddTextHeaders et AddTextFooters pour ajouter des en-têtes et pieds de page textuels, tandis que AddHtmlHeaders et AddHtmlFooters sont utilisés pour les en-têtes et pieds de page HTML.

Comment puis-je personnaliser les en-têtes et pieds de page dans un PDF en utilisant C#?

Personnalisez les en-têtes et pieds de page dans IronPDF en ajustant les propriétés du texte telles que le type de police, la taille et l'alignement en utilisant la classe TextHeaderFooter. Pour les en-têtes et pieds de page HTML, tirez parti du style HTML et CSS pour un design amélioré.

Comment puis-je m'assurer que les en-têtes et pieds de page ne chevauchent pas le contenu principal dans un PDF?

Assurez-vous que les en-têtes et pieds de page ne chevauchent pas le contenu principal en définissant des marges appropriées dans IronPDF. Utilisez les RenderingOptions dans ChromePdfRenderer pour spécifier des valeurs de marge, ou activez la dimension de marge dynamique qui s'ajuste automatiquement en fonction du contenu.

Quel est l'avantage d'utiliser des en-têtes et pieds de page HTML dans les documents PDF?

Les en-têtes et pieds de page HTML dans IronPDF offrent une personnalisation et une flexibilité de style supérieures par rapport aux en-têtes et pieds de page textuels. Ils permettent l'utilisation de HTML et CSS, autorisant des designs complexes et visuellement attrayants.

Puis-je inclure du contenu dynamique comme des numéros de page et des dates dans les en-têtes et pieds de page PDF?

Oui, vous pouvez inclure du contenu dynamique tel que des numéros de page et des dates dans les en-têtes et pieds de page PDF en utilisant IronPDF. Utilisez des chaînes de caractères substituts comme {page}, {total-pages}, {date}, et {pdf-title} dans le texte de l'en-tête/pied de page.

Comment choisir entre des en-têtes/pieds de page textuels et HTML dans mon projet PDF?

Choisissez des en-têtes/pieds de page textuels dans IronPDF pour des temps de rendu plus rapides. Optez pour des en-têtes/pieds de page HTML si vous avez besoin de plus d'options de personnalisation et de style. Considérez la complexité et la taille du contenu, car cela peut influencer la performance du rendu.

Est-il possible d'appliquer des marges personnalisées aux en-têtes et pieds de page HTML dans les PDFs?

Oui, des marges personnalisées peuvent être appliquées aux en-têtes et pieds de page HTML dans IronPDF. Utilisez les surcharges de AddHtmlHeaders et AddHtmlFooters pour spécifier des valeurs de marge et contrôler la largeur de l'en-tête/pied de page.

IronPDF est-il entièrement compatible avec .NET 10 pour l'utilisation d'en-têtes et de pieds de page dans la création de fichiers PDF ?

Oui. IronPDF est entièrement compatible avec .NET 10 et vous pouvez utiliser les mêmes méthodes d'en-tête et de pied de page (telles que AddTextHeaders , AddTextFooters , AddHtmlHeaders et AddHtmlFooters ) que dans les versions précédentes de .NET. Aucune configuration supplémentaire n'est requise pour son utilisation dans les projets .NET 10, qu'il s'agisse d'applications de bureau, d'applications web ou d'environnements conteneurisés.

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
Prêt à commencer?
Nuget Téléchargements 16,154,058 | Version : 2025.11 vient de sortir