Ajouter des en-têtes/pieds de page sur des pages spécifiques
from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

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

# Create a PDF or Load an existing PDF using PdfDocument.FromFile()
pdf = renderer.RenderHtmlAsPdf(multi_page_html)

# Create a Header
header = HtmlHeaderFooter()
header.HtmlFragment = "<div>THIS IS HEADER {page} of {total-pages}</div>"

# Create a Page Range  0 .. 7
all_page_indexes = range(pdf.PageCount)

# Example 1
# Apply header to even page index only. (page number will be odd number because index start at 0 but page number start at 1)
even_page_indexes = [i for i in all_page_indexes if i % 2 == 0]
pdf.AddHtmlHeaders(header, 1, ToPageList(even_page_indexes))
pdf.SaveAs("even_page_indexes.pdf")

# Example 2
# Apply header to odd page index only. (page number will be even number because index start at 0 but page number start at 1)
new_pdf = renderer.RenderHtmlAsPdf(multi_page_html)
odd_page_indexes = [i for i in all_page_indexes if i % 2 != 0]
new_pdf.AddHtmlHeaders(header, 1, ToPageList(odd_page_indexes))
new_pdf.SaveAs("odd_page_indexes.pdf")

# Example 3
# Apply header to last page only.
new_pdf = renderer.RenderHtmlAsPdf(multi_page_html)
new_pdf.AddHtmlHeaders(header, 1, ToPageList([new_pdf.PageCount - 1]))
new_pdf.SaveAs("last_page_only.pdf")

# Example 4
# Apply header to first page only.
new_pdf = renderer.RenderHtmlAsPdf(multi_page_html)
new_pdf.AddHtmlHeaders(header, 1, ToPage(0))
new_pdf.SaveAs("first_page_only.pdf")

# Example 5
# Skip the first page.
new_pdf = renderer.RenderHtmlAsPdf(multi_page_html)
new_pdf.AddHtmlHeaders(header, 1, ToPageRange(1, new_pdf.PageCount))
new_pdf.SaveAs("skip_first_page.pdf")

# Example 6
# Skip first page and make second pages label as 1.
new_pdf = renderer.RenderHtmlAsPdf(multi_page_html)
new_pdf.AddHtmlHeaders(header, 0, ToPageRange(1, new_pdf.PageCount))
new_pdf.SaveAs("skip_and_dont_count_the_first_page.pdf")
pip install ironpdf
Ajouter des en-têtes/pieds de page sur des pages spécifiques

Ajouter des en-têtes/pieds de page sur des pages spécifiques

IronPDF for Python offre un contrôle précis sur les pages qui reçoivent des en-têtes et des pieds de page, vous permettant de cibler des pages paires, impaires, les premières ou dernières pages, ou des plages de pages personnalisées dans un seul document.

Commencer

Rendez un PDF multi-pages, créez un objet HtmlHeaderFooter, puis utilisez AddHtmlHeaders avec l'un des assistants de ciblage de pages pour appliquer l'en-tête de manière sélective. Des appels multiples avec différentes listes de pages peuvent ajouter différents en-têtes à différentes sections du document.

Comprendre le code

  • HtmlHeaderFooter : L'objet d'en-tête contenant le fragment HTML à estampiller sur chaque page ciblée. Les champs dynamiques comme {page} et {total-pages} sont pris en charge.
  • AddHtmlHeaders(header, firstPageNumber, pageList) : Applique l'en-tête aux pages spécifiées par la liste de pages. firstPageNumber contrôle la valeur du champ de fusion {page} sur la première page ciblée.
  • ToPageList(indexes) : Convertit une liste Python d'indices de pages basées sur zéro en format de liste de pages requis par AddHtmlHeaders.
  • ToPage(index) : Cible une seule page par son indice basé sur zéro.
  • ToPageRange(start, end) : Cible une plage continue de pages par leurs indices basés sur zéro.

Exemples de ciblage de pages dans ce code

Exemple d'applicationDescription du projet
Index de pages pairesEn-tête sur les pages 1, 3, 5... (index pairs basés sur zéro)
Index de pages impairesEn-tête sur les pages 2, 4, 6... (index impairs basés sur zéro)
Dernière page uniquementEn-tête appliqué uniquement à la dernière page
Première page uniquementEn-tête appliqué uniquement à la première page
Ignorer la première pageL'en-tête commence à partir de la deuxième page
Ignorer et renuméroterLa deuxième page commence au numéro de page 1
Apprenez à ajouter des en-têtes et des pieds de page aux PDFs avec IronPDF for Python !

Prêt à commencer?

Version :2026.11vient de sortir