PDF Watermark & Page Numbers

Link copied

Add a text watermark and page numbers to a PDF without uploading it anywhere. Drop in a file, type your watermark text — like CONFIDENTIAL, DRAFT, or your name — and pick where it sits, how transparent it is, the rotation angle, and the font size; the same text is stamped on every page. Turn on page numbers to print a running number on each page using a format you control, with {n} for the current page and {total} for the page count, so you can produce styles like "1 / 12" or "Page 1 of 12" or a fully custom template. The whole document is processed locally on your device using pdf-lib, so even confidential files never leave the browser.

100% private: your PDF is stamped directly in this browser tab and never uploaded.

Drag & drop a PDF here
or
Choose file

How to use

Drag and drop your PDF. For a watermark, type the text, then choose its position on the nine-point grid and adjust the opacity, rotation, and font-size sliders. To number pages, tick "Add page numbers", pick a format (or edit the template directly using {n} and {total}), and choose where the number appears. Click Apply & download to stamp every page and save the new PDF — your original file is left untouched.

Frequently asked questions

Is my PDF uploaded anywhere?
No. The PDF is read and stamped entirely in your browser using pdf-lib and your device's own processing. Your file is never sent to a server, which makes this safe for confidential and sensitive documents.
Can I customise the page-number format?
Yes. Pick one of the preset formats or edit the template field directly. Use {n} for the current page number and {total} for the total page count — for example "Page {n} of {total}" renders as "Page 3 of 12". You can also write a fully custom template, including localised wording.
Why can't I use Chinese characters or emoji in the watermark?
The watermark and page numbers are drawn with a built-in standard font that only covers Latin letters, digits, and common punctuation, so it keeps the file small and avoids embedding a large font. If you enter characters it can't render, the tool tells you instead of producing a broken file. Stick to Latin text for now.