Adicionar cabeçalhos/rodapés em páginas específicas
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")
Adicionar cabeçalhos/rodapés em páginas específicas
IronPDF for Python oferece controle detalhado sobre quais páginas recebem cabeçalhos e rodapés, permitindo que você direcione páginas pares, páginas ímpares, primeiras ou últimas páginas, ou intervalos de páginas personalizados dentro de um único documento.
Começando
Renderize um PDF de várias páginas, crie um objeto HtmlHeaderFooter, então use AddHtmlHeaders com um dos ajudantes de direcionamento de página para aplicar o cabeçalho de forma seletiva. Várias chamadas com listas de páginas diferentes podem adicionar cabeçalhos diferentes a seções diferentes do documento.
Entendendo o código
HtmlHeaderFooter: O objeto de cabeçalho contendo o fragmento HTML para estampar em cada página direcionada. Campos dinâmicos como {page} e {total-pages} são suportados.
AddHtmlHeaders(header, firstPageNumber, pageList): Aplica o cabeçalho às páginas especificadas pela lista de páginas. firstPageNumber controla o valor do campo de mesclagem {page} na primeira página direcionada.
ToPageList(indexes): Converte uma lista Python de índices de página baseados em zero no formato de lista de páginas exigido por AddHtmlHeaders.
ToPage(index): Direciona uma única página pelo seu índice baseado em zero.
ToPageRange(start, end): Direciona um intervalo contíguo de páginas pelos seus índices baseados em zero.
Exemplos de Direcionamento de Página Neste Código
Exemplo
Descrição
Índices de páginas pares
Cabeçalho em páginas 1, 3, 5… (índices pares baseados em zero)
Índices de páginas ímpares
Cabeçalho em páginas 2, 4, 6… (índices ímpares baseados em zero)