Clioos › Guides › Add Watermark

How to Add a Watermark to a PDF

By Clioos Team

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

Steps

  1. Install the tools: pip install pypdf reportlab. The test used pypdf 6.21.4.
  2. 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.
  3. Merge it: for each page of your PDF, page.merge_page(stamp), then write the result to a new file.
  4. 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.
  5. 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)

Free alternatives, honestly compared

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