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")
특정 페이지에 머리글/바닥글 추가하기
IronPDF for Python은 페이지에 헤더와 푸터를 세밀하게 제어하여 짝수 페이지, 홀수 페이지, 첫 번째 또는 마지막 페이지 또는 단일 문서 내의 사용자 정의 페이지 범위를 대상으로 할 수 있습니다.
시작하기
여러 페이지로 구성된 PDF를 렌더링하고 HtmlHeaderFooter 객체를 생성한 다음, 페이지 대상 도우미 중 하나를 사용하여 헤더를 선택적으로 적용하기 위해 AddHtmlHeaders을 사용하십시오. 다른 페이지 목록과 여러 번 호출하면 문서의 다른 섹션에 다른 헤더를 추가할 수 있습니다.
코드 이해하기
HtmlHeaderFooter: 각각의 대상 페이지에 스탬프될 HTML 조각을 포함하는 헤더 객체입니다. {page} 및 {total-pages}와 같은 동적 필드를 지원합니다.
AddHtmlHeaders(header, firstPageNumber, pageList): 페이지 목록에 지정된 페이지에 헤더를 적용합니다. firstPageNumber은 첫 번째 대상 페이지의 {page} 병합 필드의 값을 제어합니다.
ToPageList(indexes): Python의 0 기반 페이지 인덱스 리스트를 AddHtmlHeaders에 필요한 페이지 목록 형식으로 변환합니다.
ToPage(index): 0 기반 인덱스로 단일 페이지를 대상으로 합니다.
ToPageRange(start, end): 0 기반 인덱스로 연속된 페이지 범위를 대상으로 합니다.