Categories We Write About

Batch add watermarks to documents

To batch add watermarks to documents (e.g., PDFs, Word files), here are several methods depending on your platform and file types:


For PDF Files

1. Using Adobe Acrobat Pro (Paid)

  • Open Adobe Acrobat Pro.

  • Go to File > Action Wizard > New Action.

  • Select Watermark > Add Watermark.

  • Configure your watermark text/image and position.

  • Add all files you want to process.

  • Run the batch.

2. Using Free Tools (Windows/macOS/Linux)

PDFTK (Free Command-Line Tool)
bash
pdftk input.pdf background watermark.pdf output output.pdf

You need a watermark.pdf with your watermark as a background.

Python Script (PyPDF2 or pypdf)
python
from PyPDF2 import PdfReader, PdfWriter watermark = PdfReader("watermark.pdf") for filename in ["doc1.pdf", "doc2.pdf"]: reader = PdfReader(filename) writer = PdfWriter() for page in reader.pages: page.merge_page(watermark.pages[0]) writer.add_page(page) with open(f"watermarked_{filename}", "wb") as f_out: writer.write(f_out)

For Word Documents (DOCX)

1. Microsoft Word (Batch via Macro)

You can use a VBA macro:

vba
Sub BatchWatermark() Dim dlgOpen As FileDialog Dim doc As Document Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker) With dlgOpen .AllowMultiSelect = True .Filters.Add "Word Documents", "*.docx", 1 If .Show = -1 Then For Each file In .SelectedItems Set doc = Documents.Open(file) With doc.Sections(1).Headers(wdHeaderFooterPrimary) .Range.Text = "" .Shapes.AddTextEffect( _ PresetTextEffect:=msoTextEffect1, _ Text:="CONFIDENTIAL", _ FontName:="Arial", _ FontSize:=36, _ FontBold:=msoTrue, _ FontItalic:=msoFalse, _ Left:=100, Top:=100).Select End With doc.Save doc.Close Next End If End With End Sub

Run this in the Word VBA Editor (Alt + F11).

2. Python with python-docx

This method only adds simple text watermarks, not headers/footers or diagonal watermarks.

python
from docx import Document def add_watermark(doc_path): doc = Document(doc_path) for section in doc.sections: header = section.header para = header.paragraphs[0] para.text = "CONFIDENTIAL" doc.save("watermarked_" + doc_path) files = ["doc1.docx", "doc2.docx"] for f in files: add_watermark(f)

Online Tools (Caution with Confidential Docs)


Let me know the OS or format you need help with if you’d like a ready-to-use script.

Share This Page:

Enter your email below to join The Palos Publishing Company Email List

We respect your email privacy

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories We Write About