Add a Header and Footer to a PDF
Add a consistent header and/or footer across a document — a title on the left, a page number in the center, a date on the right, or any combination you choose. Tokens like the current page number, total pages, filename, and today's date expand automatically on every page.
Choose your PDF
Drag and drop a PDF file here
or
Choose fileAccepted: a PDF file
Preview
Showing how page 1 of ? will look.
Add a valid PDF above to turn this on.
Before processing
- File must be a valid PDF
- At least the header or the footer must be turned on, with some text entered
- All expanded text (including page numbers, filename, and date tokens) must only contain characters the built-in font supports
- Font size and margin must be within their supported ranges
- Opacity must be between 10% and 100%
- The resolved page range must include at least one page
How to use Add Header and Footer to PDF
- 1Upload your PDF
- 2Turn on the header, footer, or both, and enter your text
- 3Use {page}, {pages}, {filename}, or {date} where you want them
- 4Choose which pages receive it
- 5Download your PDF
Real use cases
Adding a document title on the left and a page number on the right of every page
Stamping a confidentiality footer across an entire contract before sending it out
Adding "Page {page} of {pages}" to a report, skipping the cover page
Dating every page of a document with today's date in the footer
Benefits
Independent header and footer zones, each with left/center/right text
Automatic {page}, {pages}, {filename}, and {date} token expansion per page
Live preview shows the expanded text for any page before you convert
Apply to every page or only the ones you choose, with an optional skip-first-page for cover pages
Nothing about your document is uploaded
How browser-based processing works here
Your PDF opens locally in your browser, and every header/footer token is expanded and drawn directly onto each page using your device's own processing. The resulting file is generated on your device — no file content is sent anywhere.
- No file upload endpoint exists on this page
- No database or server-side file storage
- Output is generated locally as a browser Blob file
Supported files: Standard, non-encrypted PDF files. Encrypted or password-protected PDFs aren't currently supported.
Honest limitations
- Only a standard Helvetica font is used — characters outside Latin/Western-European script (e.g. Arabic, Chinese, Japanese, Korean, Cyrillic, emoji) aren't supported, including inside an expanded {filename} token; you'll see exactly which characters to remove.
- Text doesn't auto-wrap — very long left/center/right text can overflow into a neighboring zone.
- Unrecognized tokens (anything other than {page}, {pages}, {filename}, {date}) are left exactly as typed rather than removed, so a typo stays visible.
- Page count, page order, dimensions, rotation, and existing content carry over unchanged — nothing is edited, only drawn on top.
No artificial daily task limits. Processing capacity depends on your device, browser, file size, and page count.
Troubleshooting
My header or footer text contains characters that won't convert
The built-in font only supports Latin/Western-European characters. This also applies to an expanded {filename} token — rename the source file or remove the unsupported characters shown in the warning.
A token like {Page} or {pagenum} isn't expanding
Only {page}, {pages}, {filename}, and {date} (lowercase, exact spelling) are recognized. Anything else is left in the text exactly as typed.
The header/footer isn't on the page I expected
Check your page range setting and the skip-first-page option — together they control exactly which pages receive a header or footer.
Related tools
Frequently asked questions
Can I add just a footer, without a header?
Yes — turn on only the one you want. Each has its own independent enable toggle.
What does {pages} expand to?
The total number of pages in the document, so "Page {page} of {pages}" reads correctly on every page.
Can I skip the cover page?
Yes, turn on "Skip first page" and page 1 is excluded even if your page range would otherwise include it.
Does {filename} include the file extension?
No — {filename} expands to the source file's name without its ".pdf" extension.