Skip to content

Headers, Footers & Table of Contents

Headers

# Set a header for all pages
doc.set_header("CSE 401 - Lab Solutions")

# Different header on the first page (empty = no header)
doc.set_header("Chapter 1", first_page="")

Footers

doc.set_footer("Confidential — Do Not Distribute")

Page Numbers

# Centered in footer (default)
doc.add_page_numbers(position="footer-center")

# Other positions
doc.add_page_numbers(position="footer-right")
doc.add_page_numbers(position="header-right")
doc.add_page_numbers(position="header-left")

Available positions: footer-left, footer-center, footer-right, header-left, header-center, header-right.

Table of Contents

doc.add_toc(title="Table of Contents", max_level=3)

Note

The TOC is inserted as a Word field. It populates automatically when you open the document in Word and press Ctrl+A → F9 (Update Fields).

Complete Example

from papersmith import SmithDocument

doc = SmithDocument(preset="report")

doc.add_cover_page(title="Q3 Report", author="Finance Team")
doc.add_toc()
doc.add_page_break()

doc.add_heading("Revenue", level=1)
doc.add_text("Total revenue increased by 15% YoY.")

doc.add_heading("Expenses", level=1)
doc.add_text("Operating expenses remained flat.")

doc.set_header("Q3 2026 Report", first_page="")
doc.set_footer("Confidential")
doc.add_page_numbers(position="footer-right")

doc.save("q3_report.docx")