Free PDF Page Numbers Online

Add page numbers to every page of your PDF with customizable position, format, and styling. No uploads, no servers-processing happens locally in your browser.

Your files never leave your device
Drop PDF file here or click to browse

Supports PDF · up to 50 MB

File: -
Pages: -

How It Works

  1. Upload PDF: Drop or select your PDF file. The tool automatically detects the number of pages.
  2. Customize: Choose position (top/bottom, left/center/right), page number format, font size, and other options.
  3. Add Numbers: Click "Add Page Numbers" to apply numbering. Processing happens instantly in your browser.
  4. Download: Your numbered PDF is ready to download immediately.

Why Add Page Numbers?

Page numbers are essential for professional documents, reports, manuals, dissertations, and large presentations. They make it easy to reference specific pages in conversations, citations, or feedback. This tool lets you customize numbering to match your document style without complicated software.

Features

Frequently Asked Questions

Can I customize the page number format?

Yes. The tool offers four formats: simple numbers (1, 2, 3), "Page 1", "1 of 10", and "Page 1 of 10". Choose the format that matches your document style.

Can I skip numbering on the first page?

Yes. Check "Skip first page" to leave your title page or cover sheet without a page number. Numbering will start from page 2.

What file size is supported?

PDFs up to 50 MB are supported. Processing speed depends on PDF size and your device's available memory.

Are my PDFs uploaded to a server?

No. All processing happens locally in your browser using pdf-lib. Your PDF never leaves your device, ensuring complete privacy and security.

Can I add page numbers on mobile?

Yes. This tool works on desktop, tablet, and mobile browsers. Just select your PDF and customize the page number options.

Can I undo or remove page numbers?

Once added, page numbers are permanently part of the PDF. If you need to remove them, use the original file. We recommend keeping a backup of your original PDF.

What "PDF page numbers" actually means

The phrase "PDF page numbers" covers two genuinely different concepts that the PDF specification treats separately, although end users rarely distinguish them. The first is visible page-number text, painted onto the page as a visual annotation. Each page receives a new piece of content, usually a small text string in the header or footer area, drawn from a chosen font at a chosen size and position. The text becomes part of the page like any other text element: it prints, it shows up in screenshots, it can be selected and copied, and it appears in any rendering of the document. This is the operation this tool performs.

The second is the PDF page label dictionary, defined in ISO 32000-2 Section 12.4.2. Page labels are metadata, not content. They sit in the document's catalogue dictionary as a PageLabels number tree mapping each physical page index to a label dictionary specifying numbering style (decimal, Roman, alphabetic), a prefix string, and a starting value. PDF readers use the labels to populate the page-number indicator in the toolbar (for example, the box that shows "iv of 250") and the page navigator. They do not appear on the printed page. Labels matter for books and reports where the front matter uses Roman numerals (i, ii, iii) and the body restarts at Arabic 1, because they let the reader's page indicator match the physical numbering visible on the page. Most consumer tools, including this one, write the first kind. Page labels are valuable for accessibility and for matching the on-screen indicator to the printed page, but they are an addition to visible numbers, not a replacement.

How this tool works

This tool uses pdf-lib, a pure-JavaScript implementation of the PDF specification maintained by Andrew Dillon (Hopding) and the open-source community since 2018. pdf-lib reads, parses, and writes PDFs entirely in JavaScript without WebAssembly, without native dependencies, and without server-side processing of any kind. The library is loaded from the jsDelivr CDN as a single 380 kilobyte minified script, cached by the browser after first visit, and executes inside this tab.

When you select a PDF, the browser File API hands the file bytes directly to pdf-lib running in the JavaScript engine. The library parses the document structure into an in-memory tree of PDF objects (catalogue, page tree, content streams, font resources, metadata), then for each page in the chosen range, locates the page content stream, appends a new text-drawing operator sequence to it, and updates the cross-reference table to reflect the new stream length. The text-drawing operators follow the PDF specification for content streams: BT begins a text object, Tf selects the font and size, Td positions the text cursor at the chosen coordinates, Tj paints the string of glyphs, and ET closes the text object. When every page has been updated, pdf-lib serialises the modified document back to a byte array, the byte array becomes a Blob, and the Blob is offered as a download through a synthetic anchor click. No network request fires during the operation.

The font used for the numbers is Helvetica, one of the Standard 14 fonts defined in Annex D of ISO 32000-2. The standard fonts are guaranteed to render in every conforming PDF reader without embedding a font program, because the reader is required to have its own metrics-compatible substitute available. This keeps the output file size small (no font subset to embed) and the rendering fast. The trade-off is that the Standard 14 cover only basic Latin characters; for languages that use non-Latin scripts, a custom embedded font would be needed. Numeric page numbers in any language that uses Western Arabic numerals (which is most of them) render without difficulty.

The PDF coordinate system

PDF positions text using a coordinate system that is unusual for anyone used to web or screen graphics: the origin (0, 0) sits at the bottom-left corner of the page, the x-axis increases to the right, and the y-axis increases upward. One unit equals 1/72 of an inch, the traditional typographer's point. A standard US Letter page is 612 by 792 user units (8.5 by 11 inches). A standard A4 page is 595.276 by 841.890 user units (210 by 297 millimetres). The margin input on this tool is in points, so a margin of 30 means 30 / 72 = 0.417 inches from the edge.

The six position presets translate to coordinates as follows. "Bottom Center" places the baseline of the text at margin units above the page bottom and centred horizontally. "Top Right" places it at page-height minus margin units above the bottom, with the right edge of the text margin units to the left of the page right edge. The tool computes the page width and height per page (because PDFs can mix page sizes in a single document, common in archived scans), and positions the text within each page's own coordinate space. This is why pages of different sizes in the same document each receive a number at the correct relative position rather than all aligning to one absolute coordinate.

Page numbering in practice, across centuries

Page numbers as we know them have an older history than most people realise. The earliest printed European books, from the 1450s onwards, generally lacked page numbers and relied on signature marks (letters in the gathering of folded sheets) to keep the binder oriented. Page numbers appear sporadically through the sixteenth century, become standard in the seventeenth, and by the late eighteenth are universal. The earliest extant page-numbered book is usually given as Werner Rolewinck's Fasciculus temporum, printed by Arnold ther Hoernen at Cologne in 1474.

The conventions inherited from the print tradition still apply to PDFs today. Front matter (title page, copyright page, dedication, table of contents, preface) uses lowercase Roman numerals: i, ii, iii, iv, v. The title page is counted as page i but does not display the number. Body text restarts at Arabic 1. Back matter (notes, glossary, bibliography, index) usually continues the Arabic sequence from the body. This is the Chicago Manual of Style and Turabian rule, and it is what university theses, scholarly monographs, and most non-fiction trade books still follow. MLA-style papers run continuous Arabic from page 1. APA-style papers number from the title page with the title page as page 1. The choice depends on the document type, not on personal preference.

This tool produces a single continuous Arabic sequence, which matches MLA, APA, business reports, technical manuals, and any single-section document. For Chicago-style theses with separate front-matter and body sequences, the standard workflow is to split the document at the body boundary using the PDF Splitter, number each part separately starting at the appropriate value, and merge the two numbered parts back together with the PDF Merger.

Real-world workflows that drive PDF page numbering

Common pitfalls and what they mean

Browser-only versus cloud page numbering

The cloud PDF page-numbering services (Smallpdf, ILovePDF, PDF24 web, Adobe Acrobat Online, Sejda) upload your PDF to their servers, add the page numbers using their server-side libraries, and serve the numbered copy as a download. The privacy implications differ from a normal file upload in one important way: the document being numbered is often work-product, contract, financial report, or legal evidence, the kinds of files that organisations are most careful about not letting leave their controlled environment. The major operators publish privacy policies committing to deletion within hours and TLS in transit, and they have strong commercial reasons to comply, but "deletion within hours" is not "never seen."

This tool does not upload anything. The pdf-lib library runs in your browser tab, receives the file bytes through the File API and returns the numbered bytes back to the same tab. You can prove it: open the browser developer tools to the Network tab before clicking Add Page Numbers, run the operation, and observe that no requests are made with your file content. The trade-off is feature scope. Cloud services often offer multi-PDF batch numbering with prefix-counter Bates support, server-side OCR before numbering, and integration with their other PDF endpoints. This tool numbers one PDF at a time without OCR and without true Bates spanning. For single-document workflows (which covers the vast majority of consumer use), the browser tool is simpler, faster after the first load (no upload, no server queue), and meaningfully more private. For multi-PDF Bates discovery production, a desktop tool (Acrobat Pro) or a discovery-specific service is the right answer.

More frequently asked questions

What is the difference between visible page numbers and PDF page labels?

Visible page numbers are real text painted onto each page's content stream; they print, they are selectable, and they appear in screenshots. PDF page labels are metadata stored in the document catalogue's PageLabels number tree; readers use them for the page-indicator widget in the toolbar but they do not appear on the printed page. This tool writes visible page numbers, which is what 99% of users mean by "add page numbers" and the right answer for printing, distribution, and citation. Page labels are valuable for accessibility (screen readers can announce the labelled number rather than the physical-sheet ordinal) but they are additive, not a substitute.

How do I do Roman-numeral page numbers for front matter and Arabic numbers for the body?

Split the document at the body boundary using the PDF Splitter, number the front matter separately with the Roman convention, number the body starting at Arabic 1, and merge the two numbered parts with the PDF Merger. This tool produces a single continuous sequence in the format you choose, so multi-section numbering requires the split-and-merge workflow. This is the standard Chicago Manual of Style and Turabian pattern for theses and dissertations, the same pattern that Microsoft Word and Adobe Acrobat use under the hood when you set up "section breaks" with restart numbering.

What is Bates numbering, and does this tool support it?

Bates numbering is the legal-discovery practice of assigning each page of every document a unique identifier (typically a prefix plus a zero-padded counter, for example ACME000142) so that any future citation in a brief or deposition refers unambiguously to one page. The name comes from the Bates Manufacturing Company self-incrementing rubber stamps used before electronic documents. This tool supports the page-numbering aspect (start from any number, continuous counter, multiple format templates) but not the multi-document prefix-spanning aspect of true Bates numbering. For litigation production across thousands of pages of multiple PDFs with a shared prefix, Adobe Acrobat Pro is the standard choice.

What font does the tool use, and can I change it?

Helvetica, one of the Standard 14 fonts in Annex D of ISO 32000-2. Standard fonts are required to render in every conforming PDF reader without embedding a font program, which keeps the output file small and the rendering universal. The tool exposes font size (10, 12, 14, 16 points) as the customisation; the font face itself is fixed at Helvetica for compatibility. For documents that need a specific font for branding reasons, the standard workflow is to number the document here and then re-stamp the numbers using a desktop tool with full font support.

Why is the output PDF slightly larger than the input?

pdf-lib appends new text-drawing operators to each page's content stream and adds a Helvetica font reference. The added per-page content is small (a few hundred bytes per page typically), and the font reference is added once for the whole document. Total added size is usually under 5 kilobytes per page, often under 1 kilobyte for short numbers like "1" or "Page 1." pdf-lib does not re-compress existing streams when adding new content, so the rest of the document is preserved byte-for-byte. If output size matters, run the numbered PDF through the PDF Compress tool to re-encode the streams with up-to-date compression.

Is there a desktop or command-line equivalent for batch processing?

Yes, several. pdf-lib itself in Node.js produces identical output to this tool while running across many files in one invocation. pdftk (the PDF Toolkit) supports the stamp workflow: pdftk input.pdf stamp stamp.pdf output output.pdf after generating a stamp PDF separately with page numbers. Python with reportlab or PyPDF2 produces the same kind of output with full programmatic control over font, position, prefix, and format. Adobe Acrobat Pro's batch processing ("Action Wizard") is the GUI choice for users with an existing Acrobat subscription and full Bates-numbering needs.

Related Tools