首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用命令行在ghostscript中添加水印?

如何使用命令行在ghostscript中添加水印?
EN

Stack Overflow用户
提问于 2016-08-01 15:31:33
回答 2查看 4.2K关注 0票数 4

有没有办法用命令行在每个pdf文件上添加水印?因为我需要从代码中设置参数

'gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="7ed753c56994067cb0c8dc18fbf14921.pdf" "b79d2282c15b7e824cb8ee400401161d.pdf" "f21958c0b3a4a01fe22c9a60b6e15121.pdf" "d46615b5dd7b6e6565ef1ce8b117b860.pdf" "f46ea9512f5763693c84d8061eeff742.pdf"'

我只需要设置路径到水印,不透明度,位置x,y和宽度\高度

EN

回答 2

Stack Overflow用户

发布于 2018-03-25 07:27:18

如果你能负担得起仅仅使用文本而不是图像来做水印,那么你可以用“setlinewidth笔划”来模拟水印。

只需创建如下所示的mark.ps文件:

代码语言:javascript
复制
<<
   /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

然后运行:

代码语言:javascript
复制
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=watermarked.pdf mark.ps original.pdf

我已经在github中一个名为pdf-bash-tools的普通老式bash (POB)开源命令行界面项目中提供了密码保护、搜索、拆分和合并等功能。

票数 6
EN

Stack Overflow用户

发布于 2016-08-01 15:37:37

向每个页面添加内容的唯一方法是使用PostScript为您添加内容。添加自定义EndPage过程将允许您在页面完成之前立即在呈现的页面位图上放置标记(或在pdfwrite的情况下,附加到页面内容流)。

PostScript不支持透明度,因此您不能立即使用PostScript来实现“不透明度”。然而,Ghostscript确实支持pdfmark运算符,并且仅对于PDF输出可以使用此运算符。

因此,您需要做的是编写一个EndPage过程,该过程使用pdfmark在页面上绘制注释。注释的外观流将包含“水印”的绘制操作。如果您希望外观包含透明度,则很可能需要添加一个透明度组,但也可以使用pdfmark完成此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38693217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档