由于cpdf
有一个奇怪的商业用途许可证,我试图找到一个替代方案。这是一个(您需要安装enscript
,ps2pdf
和(pdftk
或qpdf
))。这个想法只是用来从文本enscript
创建 a .ps
,然后将其转换.ps
为.pdf
using ps2pdf
,然后将其堆叠在原始 pdf 的顶部,使用pdftk
or qpdf
...)。
pdf 版本:
echo "I will be stamped on top of the page" | enscript -B -f Courier-Bold16 -o- | ps2pdf - | pdftk input.pdf stamp - output output.pdf
qpdf版本:
如果您希望文本在所有页面上重复:
tmpfile=$(mktemp) && echo "I will be stamped on top of the page" | enscript -B -f Courier-Bold16 -o- | ps2pdf - "$tmpfile" && qpdf out_merge.pdf --overlay "$tmpfile" --repeat=1-z -- out_oneline.pdf
如果你只想把它放在第一页:
tmpfile=$(mktemp) && echo "I will be stamped on top of the page" | enscript -B -f Courier-Bold16 -o- | ps2pdf - "$tmpfile" && qpdf out_merge.pdf --overlay "$tmpfile" -- out_oneline.pdf
有关更多选项,请参阅文档。
注意:mktemp
仅用于创建临时文件以提供单线解决方案,因为qpdf
不接受来自stdin