I've numbered thousands of pages for legal filings, indie e‑books, and internal reports. The tricks that work today differ from those that were common five years ago, so I’m sharing the methods that actually hold up in 2026. Whether you need a single quick edit or a nightly batch job, this guide shows you how to add page numbers to PDF with the tools you already have.
How to add page numbers to PDF: the simplest free method
What is the quickest way?
The fastest answer is to use the viewer that ships with your operating system. On macOS the Preview app lets you drop a text box on any page; on Windows 10/11 the Microsoft Edge browser offers an “Add text” annotation that works just as well. Both tools require no installation and give you immediate visual feedback.
How do page numbers appear in PDFs?
PDFs don’t have a special page‑number object. The number is simply a text element (or a tiny image) that is stamped onto the page canvas. Because it’s just another graphic, you can control font, size, color, and exact coordinates.
When should you number pages?
Typical triggers are:
- Legal filings that demand a precise citation system.
- Long reports where a table of contents references “page X”.
- Archival submissions that must meet PDF/A or PDF/UA standards.
- Printed books or manuals that will be bound.
How to add page numbers to PDF for free (online tools)
If you prefer a browser‑based UI and the document isn’t confidential, several free services let you upload a PDF, choose a font and starting number, and download the stamped file in seconds.
TinyWow
Navigate to TinyWow’s “Add Page Numbers to PDF” page, drag your file into the upload box, set the start number and font, then click “Add Numbers”. The service processes most files under 30 seconds and returns a clean download.
I Love PDF
After uploading, select the page range, pick Arabic or Roman numerals, and press “Add page numbers”. The site adds the numbers as a text annotation, preserving the original layout.
PDFescape
PDFescape’s web editor lets you place a single “Text” annotation on the first page, then tick the “Apply to all pages” box. It’s a handy shortcut when you need the same style on every page.
How to add page numbers to PDF without Acrobat (built‑in viewers)
Both macOS Preview and Windows Microsoft Edge include a native “Add text” tool. Edge’s annotation panel lets you type a number, position it, and then copy‑paste the same annotation across pages. It’s not a batch operation, but for a document under 20 pages it’s faster than opening a third‑party app.
Using Preview on macOS
Open the PDF in Preview, show the Markup Toolbar (View → Show Markup Toolbar), and click the Text icon. Type “1”, set the font to Helvetica 10 pt, and drag the box to the bottom‑center margin. Duplicate the box with ⌘ C and ⌘ V, then edit the number on each page. When you’re done, export via File → Export as PDF….
Using Microsoft Edge on Windows
Open the PDF in Edge, click the “Add text” button in the toolbar, and type “1”. Position the box with the mouse, then copy it (right‑click → Copy) and paste it on each subsequent page. Edge does not have a native “apply to all pages” feature, so you’ll repeat the paste step manually.
Why Page Numbers Matter in 2026
Legal & compliance reasons
Court rules and government guidelines still require a static page‑number line on every page except the cover. Missing numbers can invalidate a contract or cause a filing to be rejected.
Professional presentation
Clients instantly recognize a polished document when the numbers sit cleanly in the margin. A stray number overlapping a figure looks unprofessional and erodes trust.
Accessibility & navigation
Screen‑reader software announces the page number when it encounters a heading. Properly tagged numbers satisfy PDF/UA‑1 (ISO 14289‑1:2014) or the newer PDF/UA‑2 (ISO 14289‑2:2024) accessibility standards.
Archival standards
PDF/A‑2b mandates that all visible text be embedded. Adding numbers with an embedded font guarantees the document will render the same ten years from now.
Prerequisites & Tools Overview
Software you need
Pick a tool that matches the document’s sensitivity and your workflow:
- Built‑in Preview (macOS) – zero‑install.
- Microsoft Edge – native annotation on Windows.
- Microsoft Word 365 – converts PDFs to DOCX, then back.
- Free online services – TinyWow, I Love PDF, PDFescape.
- Desktop editors – PDF‑XChange Editor, Foxit Reader, Adobe Acrobat DC (free trial).
- Programmatic libraries – Python
pypdf+reportlab, C# IronPdf, Node.js pdf‑lib.
Free vs. paid options
Free tools cover basic Arabic numbering on all pages. Paid suites add batch processing, Bates numbering, and PDF/A validation checks that legal departments often require.
System compatibility
Preview is macOS‑only. Edge, PDF‑XChange, and Foxit run on Windows 10/11. Linux users can rely on pdftk or the Python stack.
File size & complexity considerations
Large PDFs (> 200 MB) with many high‑resolution images benefit from a desktop app that works in RAM; cloud services may time out or truncate the file.
Manual Insertion with Preview (macOS)
Open PDF in Preview
Launch Preview, drag the PDF onto the app window, and ensure the sidebar shows page thumbnails.
Add header/footer
From the menu choose View → Show Markup Toolbar. Click the Text icon (a “T”). A text box appears on the first page.
Position & formatting
Type “1” (or any placeholder). Use the inspector to set font = Helvetica, size = 10 pt, color = black. Drag the box to the bottom‑center margin, leaving at least 0.75 inch from the edge.
Export & verify
Choose File → Export as PDF…. Open the new file in Preview and scroll through the thumbnails to confirm each page carries the correct number.
Using Microsoft Word as an Intermediate
Import PDF into Word
In Word 365, select File → Open and pick the PDF. Word converts it to a DOCX while preserving most layout elements.
Insert page number fields
Double‑click the header area, type “Page ”, then press Ctrl + F9 to create a PAGE field. Add “ of ”, press Ctrl + F9 again, and type NUMPAGES. The result looks like Page { PAGE } of { NUMPAGES }.
Custom formatting (Roman, Arabic, restart)
Open Design → Page Number → Format Page Numbers…. Choose Roman numerals for front matter, then insert a Section Break (Next Page) and uncheck “Link to Previous” to restart numbering at chapter 2.
Export back to PDF
File → Save As → PDF. Word embeds the fields as static text, so the final PDF shows “Page 3 of 12” on every page.
Desktop Applications (Free & Paid)
| App | Free Tier | Paid Features | OS |
|---|---|---|---|
| PDFsam Basic | Yes | Batch merge/split, simple stamping | Win/macOS/Linux |
| PDF‑XChange Editor | Yes (watermark on export) | Full header/footer, Bates numbering, PDF/A validation | Windows |
| Foxit Reader | Yes (limited) | Advanced footer editor, OCR, cloud sync | Win/macOS |
| Adobe Acrobat DC (free trial) | 30‑day trial | Dynamic page‑range, PDF/UA tagging, batch processing | Win/macOS |
Programmatic Solutions for Advanced Use
Python with pypdf & reportlab
The snippet below creates a one‑page stamp in memory, then merges it onto every page of the source PDF. It’s ideal for nightly batch jobs.
from pypdf import PdfReader, PdfWriter
from reportlab.pdfgen import canvas
from io import BytesIO
def make_stamp(page_num, total):
buf = BytesIO()
c = canvas.Canvas(buf, pagesize=(595, 842)) # A4 points
c.setFont("Helvetica", 9)
c.drawString(500, 20, f"Page {page_num} of {total}")
c.save()
buf.seek(0)
return PdfReader(buf).pages[0]
src = PdfReader("input.pdf")
writer = PdfWriter()
total = len(src.pages)
for i, pg in enumerate(src.pages, start=1):
stamp = make_stamp(i, total)
pg.merge_page(stamp)
writer.add_page(pg)
with open("output.pdf", "wb") as f:
writer.write(f)
C# with IronPdf
IronPdf’s PdfDocument class includes an .AddPageNumbers() method. After loading a PDF, call the method and save the result. The NuGet package supports .NET 8 and works on Windows, macOS, and Linux.
Node.js with pdf‑lib
Using pdf-lib, loop through pdf.getPages(), draw text at {x: 450, y: 30}, and save the file. The logic mirrors the Python example but stays in a JavaScript build pipeline.
Batch processing & automation
Combine any of the scripts with a simple shell loop (Bash or PowerShell) to process an entire folder. Remember to preserve metadata by copying the first file’s /Info dictionary before overwriting.
Pros & Cons & Best Practices
Pros of each method
- Preview – zero‑install, instant, perfect for one‑page edits.
- Word – dynamic fields, easy Roman numeral handling.
- Online tools – fastest UI, no learning curve.
- Desktop apps – batch, PDF/A validation, Bates numbering.
- Programmatic – reproducible, works on hundreds of files, fully scriptable.
Cons of each method
- Preview – no page‑range selector, manual duplication.
- Word – conversion can shift layout; large files become slow.
- Online – privacy risk, file‑size limits.
- Desktop free tiers – watermarks or limited batch size.
- Code – requires programming skill, debugging of coordinate math.
When to use which
Use Preview for a quick proof‑of‑concept. Choose Word when you need “Page X of Y” with mixed numeral styles. Pick a desktop app for legal teams that must certify PDF/A compliance. Write a script for developers who need to number 500 PDFs nightly.
Security & privacy tips
Never upload contracts, medical records, or source code to free web services. Instead, run an offline tool or a local script that never leaves the machine. Verify that the final PDF embeds the chosen font; otherwise the number may fall back to a default on another computer.
Common Mistakes & Troubleshooting
Misaligned numbers
If numbers sit over body text, increase the margin offset in the tool’s preview pane. In code, adjust the x and y coordinates by at least 15 points.
Duplicate headers
Some editors replace existing headers instead of appending. In Acrobat, use “Add” not “Update.” In Word, clear “Link to Previous” after a section break.
Missing pages
When a PDF contains a hidden blank page, most batch tools skip it. Open the thumbnail view and manually insert a number or delete the blank page.
Encoding issues
Unicode numerals (e.g., Arabic‑Indic) require an embedded font that supports those code points. Verify the font is subset‑embedded by checking the document properties → Fonts tab.
Who Should Use Which Approach?
| Target Persona | Recommended Option | Key Reason & Real‑World Benefit |
|---|---|---|
| Legal paralegal | Adobe Acrobat DC (trial) or PDF‑XChange Editor (paid) | PDF/A‑2b validation, Bates numbering, audit trail required for court filings. |
| Indie author | Preview (macOS) or Edge (Windows) | Zero‑install, quick visual check before self‑publishing on Kindle or Apple Books. |
| Developer | Python pypdf + reportlab script | Fully automated, version‑controlled, integrates with CI pipelines for nightly builds. |
| Small‑business owner | Online TinyWow / I Love PDF | Cost‑free, UI‑driven, ideal for invoices and short reports under 15 pages. |
Conclusion
The right tool depends on three factors: confidentiality, document size, and frequency of use. For a single, non‑confidential file, Preview or Edge gets the job done in seconds. Legal teams that need PDF/A certification should reach for Adobe Acrobat DC (free trial) or PDF‑XChange Editor. Developers who process hundreds of PDFs nightly will benefit most from a short Python script.
Now that you know how to add page numbers to PDF in every major environment, pick the workflow that matches your security posture and let your reports look as polished as they sound.