有没有办法用命令行在每个pdf文件上添加水印?因为我需要从代码中设置参数
'gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="7ed753c56994067cb0c8dc18fbf14921.pdf" "b79d2282c15b7e824cb8ee400401161d.pdf" "f21958c0b3a4a01fe22c9a60b6e15121.pdf" "d46615b5dd7b6e6565ef1ce8b117b860.pdf" "f46ea9512f5763693c84d8061eeff742.pdf"'
我只需要设置路径到水印,不透明度,位置x,y和宽度\高度
发布于 2018-03-25 07:27:18
如果你能负担得起仅仅使用文本而不是图像来做水印,那么你可以用“setlinewidth笔划”来模拟水印。
只需创建如下所示的mark.ps文件:
<<
/EndPage
{
2 eq { pop false }
{
gsave
/Helvetica findfont 48 scalefont setfont
newpath
.90 setgray 130 70 moveto 50 rotate
(${watermark}) false charpath
1 setlinewidth stroke
grestore
true
} ifelse
} bind
>> setpagedevice然后运行:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=watermarked.pdf mark.ps original.pdf我已经在github中一个名为pdf-bash-tools的普通老式bash (POB)开源命令行界面项目中提供了密码保护、搜索、拆分和合并等功能。
发布于 2016-08-01 15:37:37
向每个页面添加内容的唯一方法是使用PostScript为您添加内容。添加自定义EndPage过程将允许您在页面完成之前立即在呈现的页面位图上放置标记(或在pdfwrite的情况下,附加到页面内容流)。
PostScript不支持透明度,因此您不能立即使用PostScript来实现“不透明度”。然而,Ghostscript确实支持pdfmark运算符,并且仅对于PDF输出可以使用此运算符。
因此,您需要做的是编写一个EndPage过程,该过程使用pdfmark在页面上绘制注释。注释的外观流将包含“水印”的绘制操作。如果您希望外观包含透明度,则很可能需要添加一个透明度组,但也可以使用pdfmark完成此操作。
https://stackoverflow.com/questions/38693217
复制相似问题