Add Bates numbering to a PDF

Bates numbering stamps a unique sequential identifier — typically a fixed prefix followed by a zero-padded counter, such as SMITH000517 — on every page of a document set so that any page can be cited unambiguously in legal discovery. This page stamps Bates numbers on your PDF entirely in your browser: you choose the prefix, start value, digit width (3–10), corner position, and an optional date, and the stamped copy downloads without your file ever leaving your device.

Bates numbering — runs on your device

How it works

The tool opens your PDF with pdf-lib, a JavaScript library that parses the file's object structure directly in the browser. For each page, it builds the label by concatenating your prefix with the current counter value, left-padded with zeros to the width you chose (a start of 501 with 6 digits produces 000501, 000502, and so on), and appends the current date if you enabled that option. The counter increments once per page, so page order in the file determines Bates order.

The label is drawn in Courier, one of the 14 standard Type 1 fonts that every PDF viewer must supply. That choice is deliberate twice over: Courier is monospaced, so a 6-digit label is exactly the same width on page 1 as on page 900 and the stamps line up perfectly down a stack of pages, and because the font is a standard one, pdf-lib only writes a small font-resource dictionary rather than embedding font glyph data — the output grows by only a few kilobytes.

Positioning works from the page's media box. For a bottom-right stamp, the tool measures the rendered string width (character count × Courier's fixed advance width × font size) and subtracts it, plus a margin, from the page width; top positions subtract the font ascent from the page height. Because the text-drawing operators are appended to the page's content stream, the stamp becomes part of the page itself — it is not an annotation, a form field, or a layer that a viewer could hide.

That permanence is the point of Bates numbering, but it also means you should treat stamping as one-way: the output copy carries the numbers forever, exactly like ink from a physical Bates hand-stamp. Keep your original file; if you need a different prefix or sequence, re-stamp the original rather than the stamped copy, or you will end up with two overlapping labels.

Worked example: stamping a 148-page production set

A paralegal has a 148-page, 3.2 MB PDF of email exhibits to produce as part of the Smith matter. The previous production ended at SMITH000500, so she sets the prefix to SMITH, the start value to 501, the digit width to 6, and the position to bottom-right. The tool stamps SMITH000501 on page 1 through SMITH000648 on page 148, each label 11 characters of 10 pt Courier about 9 mm from the page edges.

The output file is 3.21 MB — roughly 10 KB larger, because only text operators and one shared font resource were added. The next production for the same matter should start at 649. If the set had instead needed a date for a regulatory filing, enabling the date option would have produced labels like SMITH000501  2026-08-05, still in a single aligned Courier line.

Frequently asked questions

What is Bates numbering used for?

Bates numbering gives every page of a document production a unique, citable identifier, so lawyers, courts, and opposing counsel can reference an exact page such as SMITH000517 without ambiguity. It is standard practice in litigation discovery, medical records management, and regulatory filings.

Can Bates numbers be removed after stamping?

No — this tool writes the stamp into each page's content stream, so it becomes a permanent part of the output file, exactly like printed ink. Keep your original unstamped PDF if you may need a clean copy later.

How many digits should a Bates number have?

Six digits is the most common convention because it allows up to 999,999 pages per prefix while staying compact. This tool accepts any padding width from 3 to 10 digits, so match whatever scheme your case or records system already uses.

Can I continue the sequence across several PDF files?

Yes — note the last number stamped in the first file, then run the tool on the next file with the start value set to that number plus one. Because the counter is zero-padded to a fixed width, the sequence stays sortable across files.

Why is the stamp in Courier rather than a nicer font?

Courier is monospaced, so every Bates label occupies the same width and aligns identically on every page, which reviewers expect. It is also one of the 14 standard PDF fonts, so no font file needs embedding and the file barely grows.

Is my confidential document uploaded anywhere?

No. The PDF is read and rewritten by JavaScript running in your own browser tab; nothing is transmitted to a server. That matters for discovery material, which is often subject to protective orders.

Related tools