Clioos › Guides › Add Watermark
How to Add a Watermark to a PDF
A watermark is a stamp laid over every page — DRAFT, CONFIDENTIAL, or your company name. The free way to add one is two steps: draw the stamp on a blank page with ReportLab, then merge that page onto every page of your PDF with pypdf. Here is the exact flow, tested.
At a glance
- Draw the stamp once with ReportLab: big grey text, diagonal across the page.
- Merge it onto every page with pypdf — the stamp sits on top of the content.
- Tested 6 November 2026: DRAFT on all 3 pages of a 3,249-byte file.
- A watermark deters casual copying. Anyone with PDF tools can strip it — it is not protection.
- PDF Probe does not add watermarks. It converts PDF tables to Excel — a different job.
Steps
- Install the tools:
pip install pypdf reportlab. The test used pypdf 6.21.4. - Draw the stamp (script in the section below): a one-page PDF with DRAFT in 60-point grey type, rotated 45 degrees across the centre of the page.
- Merge it: for each page of your PDF,
page.merge_page(stamp), then write the result to a new file. - Check the result: open the new file and confirm the stamp shows on every page. On the test file, DRAFT appeared on all 3 pages and the original text stayed readable underneath.
- For a logo instead of text, draw the image onto the stamp page with ReportLab's
drawImage— the merge step is identical.
Worked example (tested 6 November 2026)
I tested this with a 3-page A4 PDF (2,670 bytes). The stamp was a one-page PDF (1,543 bytes) with DRAFT in 60-point grey type, rotated 45 degrees. Merging it onto every page produced a 3-page watermarked file of 3,249 bytes, and the word DRAFT was still extractable from page 1 text — a text watermark stays searchable.
from pypdf import PdfReader, PdfWriter
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
# the stamp page
c = canvas.Canvas('watermark.pdf', pagesize=A4)
c.saveState()
c.translate(297.5, 420)
c.rotate(45)
c.setFont('Helvetica-Bold', 60)
c.setFillGray(0.85)
c.drawCentredString(0, 0, 'DRAFT')
c.restoreState()
c.save()
# merge it onto every page
reader = PdfReader('input.pdf')
stamp = PdfReader('watermark.pdf').pages[0]
writer = PdfWriter()
for page in reader.pages:
page.merge_page(stamp)
writer.add_page(page)
with open('watermarked.pdf', 'wb') as f:
writer.write(f)
What it can't do (tested)
- Real protection: a watermark is an overlay. Anyone with pypdf, qpdf, or a PDF editor can strip it in minutes. It marks a document; it does not lock it.
- Hiding text: a dark or solid stamp can cover the words underneath. Keep the grey light (0.85 in the script) and the type large so the page stays readable.
- Under the content:
merge_pageputs the stamp on top. To watermark behind the text, merge the other way round — stamp page first, then merge the content page onto it. - Scanned pages: the stamp still shows on a scanned page, because it is drawn over the image. The scan itself is unchanged.
Free alternatives, honestly compared
- pdftk: the classic CLI stamp —
pdftk input.pdf stamp watermark.pdf output watermarked.pdf. Same idea, one command, but pdftk is not in every package manager any more. - LibreOffice Draw: open the PDF, add a text box on each page, export as PDF. Works, but it is manual — one page at a time.
- Online watermark tools: they upload your file to someone else's server. Never use one for contracts or anything sensitive — the file leaves your machine.
PDF Probe does not add watermarks. It converts PDF tables and bank statements to Excel — if that is the job, see How to Convert PDF to Excel.
Frequently asked questions
Will the watermark show when printed?
Yes. The stamp becomes part of each page, so it prints exactly as it shows on screen.
Can I use a logo image instead of text?
Yes. Draw the image onto the stamp page with ReportLab's drawImage — the merge step stays the same. Keep the image semi-transparent so the text underneath stays readable.
Can someone remove the watermark?
Yes, easily, with the same free tools. A watermark is a visible mark, not security. If you need real protection, set a password or restrict the file instead.
Text or image watermark — which is better?
Text stays searchable and is trivial to change. An image suits a logo. Either way, keep it light grey and diagonal so the page stays readable.
Related guides: How to Add Page Numbers to a PDF · How to Edit a PDF · How to Sign a PDF Online · How to Compress a PDF · All guides · Tool: PDF Probe