Add Page Numbers to PDF
Stamp 1, Page 1, Page 1 of N or Roman i / I onto your PDF's pages — position, start-at offset, size, margin and page range, rebuilt live. Your file never leaves your device.
Live preview & download
The preview shows page 1 schematically; the real stamp uses the same placement math on every selected page. Numbers are drawn on top of existing content — they do not replace numbers your PDF already has.
Your PDF never leaves your browser. The numbers are drawn onto the pages in memory on your own device — no server call and no upload. Disconnect from the internet after the page loads and it still works.
Number a PDF's pages without uploading it
The usual way to paginate a merged contract pack or an exported report is to feed it to a page-number site that uploads your document to its server, stamps it there, and often gates the download behind a sign-up. For exactly the kind of file people paginate — contract exhibits, board packs, theses — that is backwards. This tool does the same job with zero upload: the numbering runs in your browser through pdf-lib, a pinned MIT library served from this page. Your file is read locally, each number is drawn onto its page in memory, and the numbered PDF is handed straight back as a download.
Four positions, five formats, computed per page
Pick where the number sits — bottom-center (the classic book position), bottom-left, bottom-right, or top-right (common on legal exhibits and reports) — and how it reads: bare 3, Page 3, Page 3 of 12, or the Roman numerals iii and III that front matter uses. The Roman formats are deliberately bare — front matter is numbered ii, never Page ii of xii — and they are built from the compact subtractive forms, so page 1990 reads MCMXC and not MDCCCCLXXXX. The margin control is in PDF points, the unit PDFs actually use: 72 pt = 1 inch, so the default 36 pt keeps the number half an inch from the edges. A worked example: on an A4 portrait page (595.28 × 841.89 pt), an 11 pt bottom-center number 15 pt wide is drawn with its baseline at (290.14, 36); flip that page to landscape and the math re-runs with the sides swapped, so mixed-orientation files come out right. Top placements inset the top of the glyphs — not the invisible baseline — by the margin, so a corner number sits visually equidistant from both edges.
Start-at: the front-matter offset
Documents rarely number every physical sheet. A thesis whose cover and table of contents occupy the first two physical pages typically starts its visible numbering at 3 — set start numbering at to 3 and physical page 1 is labeled 3, page 2 is labeled 4, and so on down the file. Combine it with a range like 3-end to leave the front matter itself unstamped. One thing start-at does not do: it counts from physical page 1 of the file you loaded, never from the first page of the range you picked. Number 5-end of a 10-page file with start-at 1 and those six pages read 5 through 10, not 1 through 6 — the range only chooses which pages get stamped; the offset alone decides what they say. So a thesis that wants i, ii, iii on its front matter and a body restarting at 1 is not two passes over one file — it is a split: cut the front matter off with Split PDF, number each part on its own (Roman starting at 1 for the front matter, plain digits starting at 1 for the body, each now physical page 1 of its own file), then put the two back together with Merge & Split PDF. In the Page 1 of N format, N is the last label actually used (start-at + page count − 1), so a 10-page file starting at 3 ends on Page 12 of 12 — never the off-by-front-matter Page 12 of 10.
Only the pages you choose
Leave the page field empty (or type all) to number everything, or use the same range syntax as the Split PDF and Watermark PDF tools — literally the same parser, shared between the three pages, so the rules never drift: 2-end on a 10-page file skips the cover, 1-3, 7 numbers four pages, and end always means the last page. Pages outside the range are left completely untouched — not renumbered, not shifted. Bad input is refused with a specific error — 12 on a 10-page file is out of range, 5-2 is reversed — never silently "fixed" into stamping the wrong pages.
Honest limits: added on top, and Roman stops at 3999
Three things this tool does not claim. First, the numbers are drawn on top of the existing page content — the tool cannot detect or remove numbers your PDF already has, so renumbering an already-numbered file produces two sets of numbers unless you pick a different corner. Second, labels are set in the built-in Helvetica font, which covers Western (WinAnsi) characters: 1, Page 1 of 12 and Roman numerals are all Latin letters and digits Helvetica already carries, but Arabic-Indic and CJK numeral forms are outside that encoding and are not offered — that one really is a font limit. Third, the Roman formats have a limit of their own, and it is arithmetic rather than typographic: the classic system has no zero and no glyph above M, so it can write 1 to 3999 and nothing else. Ask for anything outside that — start at 0, or let a Roman run walk past MMMCMXCIX — and the hint line says so by name and nothing is stamped, rather than the tool inventing a glyph or quietly dropping back to Arabic digits. The existing pages are not re-encoded: text stays selectable, vectors stay sharp, images keep their original bytes; each number adds a small text object, typically a few kilobytes across the whole file. Everything rebuilds live on every change — nudge the margin from 36 to 48 and the preview and the downloadable file both update; there is no Apply button to hunt for.