38 lines
1.2 KiB
Python
Executable File
38 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
'''
|
|
Simple example of watermarking using form xobjects (pdfrw).
|
|
|
|
usage: watermark.py [-u] my.pdf single_page.pdf
|
|
|
|
Creates watermark.my.pdf, with every page overlaid with
|
|
first page from single_page.pdf. If -u is selected, watermark
|
|
will be placed underneath page (painted first).
|
|
|
|
NOTE 1: This program assumes that all pages (including the watermark
|
|
page) are the same size. For other possibilities, see
|
|
the fancy_watermark.py example.
|
|
|
|
NOTE 2: At one point, this example was extremely complicated, with
|
|
multiple options. That only led to errors in implementation,
|
|
so it has been re-simplified in order to show basic principles
|
|
of the library operation and to match the other examples better.
|
|
'''
|
|
|
|
import sys
|
|
import os
|
|
|
|
from pdfrw import PdfReader, PdfWriter, PageMerge
|
|
|
|
argv = sys.argv[1:]
|
|
underneath = '-u' in argv
|
|
if underneath:
|
|
del argv[argv.index('-u')]
|
|
inpfn, wmarkfn = argv
|
|
outfn = 'watermark.' + os.path.basename(inpfn)
|
|
wmark = PageMerge().add(PdfReader(wmarkfn).pages[0])[0]
|
|
trailer = PdfReader(inpfn)
|
|
for page in trailer.pages:
|
|
PageMerge(page).add(wmark, prepend=underneath).render()
|
|
PdfWriter(outfn, trailer=trailer).write()
|