Polotno

PDF tool

Watermark a PDF

Stamp a diagonal watermark across every page of a PDF. Runs entirely in your browser, nothing is uploaded, and the stamp stays editable before you export.

Quick answer

Type your text, drop a PDF, and every page gets a diagonal watermark you can still edit before exporting. Nothing is uploaded.

Formula: PDF → Polotno JSON → text element per page → PDF (browser-only)

Drop a PDF file here to convert it to PDF

or

Runs entirely in your browser. Your file never leaves your device.

Stamp every page of a PDF with a diagonal watermark without uploading the file anywhere. The stamp is a real text element, so it stays editable right up until you export.

Every page, sized to that page

The watermark is placed per page rather than once for the document. Font size comes from each page's diagonal, so a landscape insert in a portrait report gets a stamp in proportion to its own page. Documents that mix A4 and A3, or slip a chart in sideways, come out looking deliberate rather than patched.

It stays editable

Once the PDF parses, the document opens in the embedded editor with the watermark already applied. Select it on any page to change the text, colour, angle, or opacity, or delete it from a page that should not carry it. The export renders what you see.

What this is not

It is not a security control. The watermark is an ordinary element drawn on top of the page, and anyone who opens the exported file in a PDF editor can remove it. It is useful for marking a draft, an internal copy, or a proof. It will not stop a determined recipient, and no client-side watermark will.

The same operation in code

watermark.ts
import { pdfToJson } from "@polotno/pdf-import";
import { jsonToPDFBlob } from "@polotno/pdf-export/browser";

const design = await pdfToJson({ pdf: await file.arrayBuffer() });

for (const page of design.pages) {
  page.children.push({
    type: "text",
    text: "CONFIDENTIAL",
    fontSize: 96,
    fill: "#ff0000",
    opacity: 0.25,
    rotation: -35,
    align: "center",
    alwaysOnTop: true,
    // position from the page box
    x: 0,
    y: design.height / 2,
    width: design.width,
  });
}

const blob = await jsonToPDFBlob(design);

The same loop runs under Node for batch work. See PDF import, PDF export, and PDF editing in the SDK.

Frequently asked questions

Q: How do I add a watermark to a PDF?

Type the text you want, drop the PDF on the converter, and every page gets a diagonal stamp. The document opens in the editor afterwards so you can move, recolour, or resize the watermark before downloading.

Q: Does my PDF get uploaded?

No. The file is parsed in your browser with pdf.js and the watermark is added to the design locally. Nothing is transmitted, which matters given people watermark contracts, drafts, and pre-release documents.

Q: Is this a security feature?

No, and it is worth being blunt about it. The watermark is a normal text element sitting on top of the page. Anyone can open the exported PDF in an editor and delete it. Use it to mark a draft or discourage casual reuse, not to protect a document.

Q: Can I change the angle, colour, or opacity?

Yes, in the editor after conversion. The defaults are a red stamp at 25% opacity rotated 35 degrees, which reads clearly without hiding the text underneath. Select the watermark on any page to change it.

Q: Does it handle documents with mixed page sizes?

Yes. The stamp is sized and centred per page from that page's diagonal, so a landscape chart in a portrait report gets a watermark in proportion to its own page rather than the document's first one.

Q: Will the watermark cover the text underneath?

Not at the default 25% opacity - the underlying text stays readable and selectable, since the watermark is a separate element rather than a flattened overlay.

Want this in your app? Embed Polotno SDK.

TRUSTED BY

100,000+

CREATORS

300+

BUSINESSES

ExpediaUnbounceLovePopPostGridPredis.ai