Why page numbering looks different today
Not long ago, “automated page numbering” basically meant one thing: stamp Page X of Y at the bottom of every page and call it done. That approach still covers a huge percentage of real-world needs—especially for invoices, short reports, and simple document packets.
But document workflows have evolved. Teams now generate PDFs from multiple systems, merge attachments at the last minute, publish formal reports with front matter, and assemble exhibit bundles with strict formatting rules. In that environment, a single “one-size-fits-all footer” is often not enough.
What’s changed from before to today is the emphasis on advanced formatting controls—specifically: ranges, sections, numbering styles, font rules, placement alignment, pixelA print pixel in digital marketing is a tiny image, one wide by one high (1×1 px) that is inserted ... More offsets, and optional date rendering. Instead of treating page numbering as a flat stamp applied uniformly, modern implementations treat it as a layout system: different pages can follow different rules, and you can match the typography and positioning of a house style.
This article explains how advanced page numbering works today—what you can configure, how the parts fit together, and how that differs from the older “simple footerThe footer is the bottom of a web structure that generally includes navigation links, links of inter... More everywhere” pattern.
The shift from basic pagination to layout-aware pagination
The older approach to automated numbering was simple:
- Choose one location (usually footer center)
- Insert Page <<page_number>> of <<total_pages>>
- Apply it to every page
That workflow is still valid and still the fastest way to get correct pagination.
What “advanced formatting” adds today
Modern page numbering moves beyond uniform stamping and enables:
- Different numbering styles in different parts of a document (Roman numerals for intro pages, Arabic for main content)
- Different placement rules by page range (no footer on cover pages, centered headerThe term header means either the high top section of a web page which normally holds the brand info ... More for appendices, etc.)
- Typography control (font family, size, and style)
- Precise positioning via pixel offsets
- Optional “Generated on…” headers with date formatting, locale, and timezone
These upgrades don’t just make documents look nicer. They reduce manual touchups, prevent formatting mistakes, and make output consistent across a large volume of PDFs.
Sections and ranges: the feature that changes everything
The most important concept in advanced page numbering is sections. Instead of one global rule for the entire PDF, you define a list of sections in your page number settings. Each section can apply to:
- A specific range (like
"1-10") - Or all pages, if the range is omitted
Why sections matter in real workflows
Sections let you match how professional documents are usually structured:
LOOKING FOR A ONE-STOP SOLUTION TO YOUR GROWTH NEEDS?
- Cover page (often no numbering)
- Front matter (Roman numerals)
- Main content (Arabic numerals)
- Appendices (sometimes different alignment, font, or wording)
By organizing rules into sections, you can implement these conventions programmatically instead of fixing them manually.
How ranges work
A range is typically expressed as a string such as:
"1-10"for pages 1 through 10
If you leave range out, the section affects every page. That makes ranges optional—but extremely powerful when you need different behaviors in different parts of a PDF.
A practical example: Roman numerals first, Arabic numerals later
A classic publishing layout might look like this:
- Pages 1–2: Roman numerals (i, ii, iii) in the footer
- Pages 3–end: Standard numbering (1, 2, 3) in the header
In older “basic pagination” setups, doing this typically required preprocessing, splitting PDFs, or writing custom logic outside the page numbering step. Today, sections and ranges make it a configuration problem rather than a coding problem.
Numbering styles: more than just 1, 2, 3
Advanced formatting includes numbering types that control how page numbers are displayed. The supported values include:
1→ 1, 2, 3a→ a, b, cA→ A, B, Ci→ i, ii, iiiI→ I, II, III
This matters whenever the document has front matter or specific editorial requirements.
Using the start value to control where numbering begins
Another key tool is the start value, which lets you regulate the first page number in a section.
This is useful for scenarios like:
- Starting the main content at page 1 even if the PDF includes a cover and intro pages
- Continuing numbering across inserted content
- Resetting numbering for an appendix or separate document segment
Older workflows often handled “start at 1” by cutting and merging PDFs. Today, the start value makes that a native part of your pagination configuration.
Fonts and typography: making pagination match your brand
A page number is still text, and text has style. Advanced formatting allows you to set:
- Font family (
name) - Font size (
size) - Font style (
style), such as Normal, Bold, Italic, or Bold Italic
Defaults that simplify configuration
If you don’t specify formatting, the defaults are:
- Font: Roboto
- Size: 12
These defaults matter because they create a predictable baseline. In many internal workflows, a default font is fine—especially when the priority is speed and correctness rather than strict brand alignment.
When you should explicitly set fonts
You’ll typically want explicit font settings when:
- Your organization has a standardized document style guide
- Your PDFs are client-facing or published externally
- Your pagination must visually match existing headers/footers
- You’re mixing PDFs generated by different tools, each with different default fonts
In other words, the “today” approach gives you the option to rely on defaults for simplicity—or to enforce typography for consistency.
Placement rules: header/footer plus left/center/right alignment
Advanced page numbering also formalizes placement rules. The key requirements are:
- You must define at least one: header or footer
- Within header or footer, you must specify at least one placement: left, center, or right
This makes pagination predictable and avoids ambiguous layout behavior.
What each placement block must include
Every placement block requires:
text(required): the content you want to renderoffsets(optional): pixel adjustments (top, bottom, left, right)
The text can include placeholders such as:
<<page_number>><<total_pages>>
This keeps the numbering dynamic, even if the document length changes after merging attachments or adding pages late in the process.
Why alignment matters more than it seems
Left/center/right alignment isn’t just aesthetic. It’s often necessary to avoid collisions with other page elements:
- Left footer might be reserved for document name or case number
- Right footer might be reserved for date or version
- Center footer is often the safest place for “Page X of Y”
A modern implementation can use alignment strategically across sections—for example, a centered footer in the main content but a right-aligned header in appendices.
Offsets: pixel-level control for real-world PDFs
Offsets allow you to fine-tune placement using pixel values:
topbottomleftright
Offsets are optional, but they become essential in situations where “default header/footer positioning” isn’t enough.
When offsets solve real problems
Offsets are particularly helpful when:
- A PDF has a pre-existing footer band or letterhead
- Your numbering overlaps a stamp, watermark, or signature line
- Different source PDFs have slightly different margins
- You need consistent placement across PDFs that don’t share the same layout geometry
Before offsets were part of a well-defined configuration, teams often fixed overlap issues by trial and error—exporting PDFs repeatedly until the placement “looked right.” Today, offsets make those adjustments explicit and repeatable.
Best practice: standardize offsets as part of a house style
If your organization processes many PDFs, define a standard set of offsets for:
- Header left
- Header center
- Header right
- Footer left
- Footer center
- Footer right
Then reuse them across document types. This turns pagination into a consistent, brand-aligned operation rather than a per-document tweak.
Date rendering: optional, but now more structured
Advanced formatting supports optional date rendering through date_config, which includes:
formatlocale(required if date_config is used)timezone(required if date_config is used)
If date rendering is not configured, UTC is treated as the default rendering timezone.
Why date rendering matters
Date rendering is commonly used for headers such as:
- “Generated on …”
- “Created on …”
- “Issued on …”
In automated workflows, adding a generated date can be valuable for:
- Audit trails
- Version tracking
- Client communication clarity (especially when documents are regenerated)
- Compliance workflows where generation date is required
The importance of locale and timezone
Dates can be surprisingly error-prone in automation. A system running in one region might generate a document for users in another region, and “today” can become “yesterday” around midnight UTC.
By requiring locale and timezone when date rendering is enabled, modern configurations aim to prevent inconsistent date output and make the formatting intentional instead of accidental.
Putting it all together: how a modern configuration is built
Advanced page numbering is best understood as a layered configuration system:
- Sections define “which pages get which rules”
- Ranges optionally scope each section to specific pages
- Numbering styles control how the page numbers appear
- Start values control where numbering begins in a section
- Header/footer and alignment decide where the text renders
- Text placeholders keep pagination dynamic
- Offsets refine placement in pixels
- Date rendering optionally adds “Generated on…” content with controlled formatting
In older implementations, you might only use steps 5 and 6 (footer center plus placeholders). Today, you can progressively adopt the rest as your formatting needs become more sophisticated.
How your article changes from before to today
If you compare an older “basic page numbering” write-up with a modern one, the structure of the guidance shifts noticeably.
Before: one global rule
Older articles typically emphasized:
- Add “Page X of Y”
- Put it in the footer
- Apply it to all pages
- Use placeholders for page number and total pages
That approach is ideal for simplicity and speed.
Today: multiple rules depending on page context
Updated articles must include:
- Section-based configuration so different parts of the PDF can behave differently
- Range scoping to target specific page groups
- Multiple numbering types, including Roman numerals and letters
- Start values for resetting or controlling numbering
- Font configuration with known defaults
- Clear layout requirements for header/footer and alignment
- Offset control for pixel-accurate positioning
- Optional date rendering with required locale and timezone
In other words, the “today” article becomes less about “how to stamp page numbers” and more about “how to design consistent, professional pagination across diverse document structures.”
Best practices for adopting advanced formatting without overcomplicating your workflow
Advanced formatting is powerful, but you don’t have to use everything at once. The most reliable approach is incremental.
Start with the simplest correct result
Begin with a single section applied to all pages:
- Footer center
- “Page <<page_number>> of <<total_pages>>”
- Default font settings
This gets you working pagination immediately.
Add sections only when a real requirement appears
Introduce additional sections when you encounter common document patterns:
- Cover page shouldn’t display numbering
- Front matter requires Roman numerals
- Appendices need a different header layout
Sections are easiest to maintain when each one corresponds to a meaningful document segment.
Use numbering types deliberately
Letter-based or Roman numeral numbering should be used intentionally, typically for:
- Preface / introduction
- Annexes in formal documentation
- Specialized publishing workflows
If your output is primarily operational (invoices, statements, internal packets), standard 1 numbering may remain the best default.
Treat offsets as a standard, not a workaround
Offsets often start as “we had overlap, so we nudged it.” But in mature workflows, offsets become part of a standard style definition that prevents overlap across many PDFs—not just one.
Only enable date rendering when it supports a clear purpose
Adding dates is useful for auditing and clarity, but it can also create confusion if timezone and locale aren’t aligned with user expectations. If you enable date rendering:
- Always set locale and timezone as required
- Keep the date format consistent across all documents
- Place it where it won’t visually compete with page numbering
Final thoughts: advanced pagination is about consistency and credibility
Page numbering seems like a small detail until it goes wrong. A missing number, a misaligned footer, or an incorrect numbering style can make a document look unprofessional—or worse, create confusion in a legal, financial, or compliance context.
What’s changed from before to today is that page numbering is no longer treated as a single stamp applied uniformly. Modern formatting treats it as a controlled system: sections, ranges, typography, placement, precision offsets, numbering styles, and optional date rendering. That shift gives teams the tools to produce PDFs that look intentional, consistent, and trustworthy—at scale—without last-minute manual edits.
© Image credits to Steve Johnson
LOOKING FOR A ONE-STOP SOLUTION TO YOUR GROWTH NEEDS?