#!/bin/bash
text=${1?missing text to show}
# Restricts string to 15 symbols from start, without extension and folder's path
mtext=$(echo ${text:0:15} | sed 's/.pdf//' | sed -e 's,.*/,,')
angle=45 # in degrees counterclockwise from horizontal
grey=0.75 # 0 is black 1 is white
ps2pdf - - <<!
%!PS
/cm { 28.4 mul } bind def
/draft-Bigfont /Helvetica-Bold findfont 72 scalefont def
/draft-copy {
gsave initgraphics $grey setgray
5 cm 10 cm moveto
$angle rotate
draft-Bigfont setfont
($mtext) show grestore
} def
draft-copy showpage
!
将其放入包含 pdf 文件的文件夹中
在包含 pdf 文件的文件夹中运行下一条命令,这将每次创建 watermark.pdf 文件,将其应用于当前文件并将其输出到新文件:
for f in ./*.pdf
do ./pdfstamp.sh "$f" > watermark.pdf
pdftk "$f" stamp watermark.pdf output "$f.pdf"
done
创建一个脚本
gedit /home/user/folderwithpdfs/pdfstamp.sh
,它将生成 watermark.pdf 文件,其中包含缩短的文件名文本作为水印:将其放入包含 pdf 文件的文件夹中
在包含 pdf 文件的文件夹中运行下一条命令,这将每次创建 watermark.pdf 文件,将其应用于当前文件并将其输出到新文件:
该命令将创建带有文件名水印但没有扩展名且长度为 15 个符号的 filename.pdf.pdf 文件。
脚本主要由@meuh 创建。
结果:
该命令的下一个变体将水印放置到背景中,因此它看起来像透明的:
但是这种方法有一个缺点:这个水印可能会被图像覆盖。