Kopf- und Fußzeilen auf bestimmten Seiten hinzufügen
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")
Kopf- und Fußzeilen auf bestimmten Seiten hinzufügen
IronPDF for Python bietet eine feingranulare Kontrolle darüber, welche Seiten Kopf- und Fußzeilen erhalten, sodass Sie gerade Seiten, ungerade Seiten, die erste oder letzte Seite oder benutzerdefinierte Seitenbereiche innerhalb eines einzelnen Dokuments gezielt ansprechen können.
Einstieg
Rendern Sie ein mehrseitiges PDF, erstellen Sie ein HtmlHeaderFooter Objekt, und verwenden Sie dann AddHtmlHeaders mit einem der Seitentargeting-Helfer, um den Header selektiv anzuwenden. Mehrere Aufrufe mit verschiedenen Seitenlisten können unterschiedliche Header zu verschiedenen Abschnitten des Dokuments hinzufügen.
Den Code verstehen
HtmlHeaderFooter: Der Header-Objekt, das das HTML-Fragment enthält, das auf jede Zielseite gestempelt werden soll. Dynamische Felder wie {page} und {total-pages} werden unterstützt.
AddHtmlHeaders(header, firstPageNumber, pageList): Wendet den Header auf die von der Seitenliste angegebenen Seiten an. firstPageNumber steuert den Wert des {page} Merge-Feldes auf der ersten Zielseite.
ToPageList(indexes): Konvertiert eine Python-Liste nullbasierter Seitenindizes in das von AddHtmlHeaders benötigte Seitenlistenformat.
ToPage(index): Zielt auf eine einzelne Seite anhand ihres nullbasierten Indexes.
ToPageRange(start, end): Zielt auf einen zusammenhängenden Seitenbereich anhand ihrer nullbasierten Indizes.
Beispiele zur Seitenauswahl in diesem Code
Beispiel
Beschreibung
Gerade Seitenindizes
Header auf den Seiten 1, 3, 5... (nullbasierte gerade Indizes)
Ungerade Seitenindizes
Header auf den Seiten 2, 4, 6... (nullbasierte ungerade Indizes)