How to bates-stamp contract exhibit pages for precise cross-referencing
- Step 1Decide per-exhibit vs. continuous numbering — Two conventions: a distinct prefix per exhibit each starting at 1 (
EXA-000001,EXB-000001), or one shared prefix running continuously across all exhibits. Per-exhibit prefixes make clause references self-documenting; pick one and apply it consistently. - Step 2Add the first exhibit PDF — Drop one exhibit onto the tool. It stamps a single file per run, which suits the per-exhibit-prefix convention well — you process each exhibit with its own prefix.
- Step 3Set prefix, start number, and digit width — For Exhibit A use prefix
EXA-, start1, digits6. Include the hyphen in the prefix — nothing is inserted automatically. Keep the digit width identical across exhibits for visual consistency. - Step 4Choose a corner that stays clear of contract text — Bottom-right is the usual exhibit position. If a schedule has a footer or table that reaches the corner, pick a different corner — the four corners are the only placement options, and the mark is opaque.
- Step 5Stamp each remaining exhibit with its own prefix — Repeat for Exhibit B (
EXB-), Exhibit C (EXC-), and so on. Each run is independent — the tool keeps no state between files, so set every option fresh. - Step 6Insert the Bates references into the agreement — Once every exhibit is stamped, update the agreement body to cite exact pages —
See Exhibit A at EXA-000012. Finalise the execution set with the agreement and all stamped exhibits together.
Two exhibit-numbering conventions
Both are achievable with this tool's four options. Choose one and stay consistent across the whole agreement.
| Convention | How to set it | Resulting codes | Best when |
|---|---|---|---|
| Per-exhibit prefix | Stamp each exhibit separately: EXA- start 1, EXB- start 1, ... | EXA-000001…, EXB-000001… | Many discrete exhibits cited individually in clauses |
| Continuous series | One prefix; advance start by each exhibit's page count | EX-000001 … EX-000312 across all exhibits | You reference the bundle as one production range |
| Merge-then-stamp | Merge all exhibits, stamp once from 1 with one prefix | EX-000001 … (single unbroken run) | Exhibits are filed as one combined PDF |
The four controls and the fixed render
Left: what you can set. Right: what is hard-coded. The fixed render is deliberately small and consistent, which suits contract margins.
| Adjustable | Default | Fixed (not adjustable) | Value |
|---|---|---|---|
| Prefix | DOC- | Font | Courier-Bold |
| Start number | 1 | Font size | 9 pt |
| Digits (1-10) | 6 | Colour | Solid black, opaque |
| Position (4 corners) | bottom-right | Margin | 25 pt from edge |
Tier limits for exhibit PDFs
A schedule-heavy exhibit can be large. Check the page and size caps before stamping.
| Tier | Max file size | Max pages | Files per run |
|---|---|---|---|
| Free | 2 MB | 50 pages | 1 |
| Pro | 50 MB | 500 pages | 5 |
| Pro + Media | 500 MB | 2,000 pages | 50 |
| Developer | 2 GB | 10,000 pages | unlimited |
| Enterprise | unlimited | unlimited | unlimited |
Cookbook
Multi-exhibit numbering recipes. Exhibit names and codes are illustrative.
Exhibit A with its own prefix
Per-exhibit convention: Exhibit A starts at 1 under its own prefix, so clauses cite EXA-page directly.
Options: prefix: EXA- startNum: 1 digits: 6 position: bottom-right Exhibit A (28 pages): page 1 -> EXA-000001 page 28 -> EXA-000028 Clause reference: "See Exhibit A at EXA-000012".
Exhibit B as a fresh per-exhibit series
Exhibit B gets its own prefix and also restarts at 1 — the references are self-documenting (the EXB prefix tells the reader which exhibit).
Options: prefix: EXB- startNum: 1 digits: 6 Exhibit B (15 pages): page 1 -> EXB-000001 page 15 -> EXB-000015
Continuous series across three exhibits
Alternative convention: one prefix running unbroken across all exhibits. Advance the start by each exhibit's page count.
Shared prefix: EX- digits: 6 Exhibit A (28 pp): start 1 -> EX-000001 .. EX-000028 Exhibit B (15 pp): start 29 -> EX-000029 .. EX-000043 Exhibit C (40 pp): start 44 -> EX-000044 .. EX-000083
Merge then stamp for a single filed bundle
If the exhibits will be filed as one PDF, merge first and stamp once — simpler and gives a guaranteed unbroken run.
Step 1: /pdf-tools/pdf-merge -> Exhibits A+B+C as one PDF (83 pp) Step 2: stamp it: prefix EX- startNum 1 digits 6 Result: EX-000001 .. EX-000083 in one pass.
Keeping the stamp tight for a clean margin
Contracts care about legibility. The fixed 9 pt size and corner placement keep the mark in the margin, away from the body terms.
Render is fixed: 9 pt Courier-Bold, 25 pt margin. If a schedule footer crowds bottom-right: switch position -> top-right (still in the margin, away from the contract body text). No font-size control exists, so move the stamp rather than shrink it.
Edge cases and what actually happens
Exhibit footer/table reaches the stamped corner
ExpectedThe mark is opaque and placed at a fixed 25 pt margin; it does not avoid content. A pricing table or footer in that corner will be overlapped. Move the stamp to a clear corner — that is the only placement adjustment available.
Wanting different prefixes on different pages of one exhibit
Not supportedA single run uses one prefix for the whole file. You cannot switch prefix part-way through an exhibit. Split the exhibit with /pdf-tools/pdf-split-range and stamp each part separately if you truly need different prefixes within one file.
Continuous series, but start number not advanced between exhibits
Sequence collisionIf you forget to advance the start, Exhibit B restarts at 1 and collides with Exhibit A's numbers. The tool keeps no memory of the prior run — track each exhibit's page count and set the next start by hand.
Exhibit PDF over 50 pages on free tier
BlockedFree tier caps at 50 pages / 2 MB per file. A long schedule may exceed it. Upgrade (Pro = 500 pages) or split with /pdf-tools/pdf-split-fixed and stamp each piece with a continuing start.
Encrypted exhibit (permissions password)
PreservedA permissions-only encrypted exhibit stamps because the engine ignores encryption on load. One that needs a password just to open will not load — strip the open password with /pdf-tools/pdf-remove-password first, then stamp.
Re-stamping an exhibit that already has Bates marks
Double stampThe tool adds a new mark over any existing one — it does not detect or replace prior numbering. Stamp from the clean source exhibit, not from a previously stamped copy, to avoid overlapping codes.
Prefix lacks a hyphen so the code reads run-together
By designType EXA and you get EXA000012, not EXA-000012. There is no automatic separator. Include the hyphen (or space) in the prefix field to get the exhibit code style you reference in the contract.
Digit width inconsistent between exhibits
Inconsistent seriesIf Exhibit A used 6 digits and Exhibit B used 4, the codes look uneven (EXA-000012 vs EXB-0012) and references read inconsistently. Keep the same digit width for every exhibit in one agreement.
Frequently asked questions
Should each exhibit have a separate prefix?
It is a strong convention. A distinct prefix per exhibit (EXA-, EXB-, EXC-) makes a clause reference like EXA-000012 self-documenting — the reader knows both the exhibit and the page. Stamp each exhibit in its own run with its own prefix.
Can I Bates-stamp an exhibit that already has page numbers?
Yes. Bates numbers and page numbers coexist. Put the Bates stamp in one corner here, and if you want a page count too, add it with /pdf-tools/pdf-page-numbers in a different corner so they don't overlap.
Does the Bates stamp affect the contract's legibility?
It is a small 9 pt mark in a corner at a 25 pt margin, so on a normal page it sits in the white space and does not touch the body terms. If a footer or table reaches that corner, move the stamp to a clear corner.
Can I make the stamp font smaller for a minimal footprint?
No — the size is fixed at 9 pt and cannot be changed. If 9 pt crowds a busy corner, the remedy is to choose a different corner, since position is the only adjustable placement control.
How do I number all exhibits as one continuous series?
Use one shared prefix and advance the start number by each exhibit's page count: Exhibit A from 1, Exhibit B from A's last + 1, and so on. Or merge all exhibits with /pdf-tools/pdf-merge and stamp the combined PDF once from 1.
Is there a separator between the prefix and the number?
No. The stamp is the prefix immediately followed by the zero-padded number. To get EXA-000012, type EXA- (with the hyphen) as the prefix; the 000012 is the padded page number.
Can I stamp several exhibits at once?
The tool processes one file per run, which fits the per-exhibit-prefix convention well. For a single combined run, merge the exhibits first with /pdf-tools/pdf-merge and stamp the merged PDF.
Will confidential deal terms be uploaded?
No. Stamping runs in your browser on pdf-lib — the exhibit's bytes never leave your device. Only an anonymous processed-a-file counter is recorded for dashboard stats, with no content.
What digit width should I use for exhibits?
Six digits (000001) is the common choice and covers up to 999,999 pages. Keep the same width across every exhibit in the agreement so the codes look uniform in your cross-references.
Does it stamp continuation pages of a multi-page schedule?
Yes — every page of the exhibit gets the next sequential number, including continuation sheets. That is what makes a multi-page schedule fully addressable by page.
How large an exhibit can I stamp?
Free: 2 MB / 50 pages. Pro: 50 MB / 500 pages. Pro+Media: 500 MB / 2,000 pages. Developer: 2 GB / 10,000 pages. Enterprise: unlimited. Split larger exhibits with /pdf-tools/pdf-split-fixed.
Can I add a watermark like CONFIDENTIAL as well?
Yes, in a separate pass. Bake a short tag into the prefix if you want it on the Bates code, or add a diagonal watermark across the page with /pdf-tools/pdf-watermark. The Bates stamp itself is always a solid corner mark, not a watermark.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.