我转换PDF -> 许多 JPEG and 许多 JPEG -> 许多 PDF using ghostscript
。我需要在每个转换后的 JPEG (PDF) 页面上添加水印文本。是否可以仅使用 Ghostscript 和 PostScript?
我发现的唯一方法:
gswin32c -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=output.pdf watermark.ps input.pdf
但这会插入watermark.ps
第一个单独页面上的水印output.pdf
.
我可以直接在输出 PDF 页面上执行此操作吗?
我可以直接在输出 JPEG 页面上执行此操作吗?
<<
/BeginPage
{ gsave
/Helvetica_Bold 120 selectfont
.85 setgray 130 70 moveto 50 rotate (Sample) show
grestore
} bind
>> setpagedevice
如果我使用/EndPage
代替/BeginPage
- 它说setpagedevice
不适用...
如何重新制作这个脚本/EndPage
?
评论太大了,所以我添加了一个新答案。 EndPage 过程(参见 PostScript 语言参考手册的第 441 页)在堆栈上采用两个附加参数:到目前为止发出的页面计数和原因代码。
您可以使用页面计数来执行有趣的操作,例如双面打印,或者仅标记偶数页面或其他内容,但我假设在这种情况下您不需要它,所以您只需从堆栈中“弹出”它即可。
原因代码告诉您为什么发出该页面,同样您可能不关心,因此您只需弹出该值。
最后,EndPage 必须向解释器返回一个布尔值,表示是否传输该页面(这允许您执行其他有趣的操作,例如仅打印前 10 页等)。
因此,您需要首先删除两个值,执行代码并返回一个布尔值。非常琐碎:
<<
/EndPage
{ pop pop %% *BEFORE* gsave as that puts a gsave object on the stack
gsave
/Helvetica_Bold 120 selectfont
.85 setgray 130 70 moveto 50 rotate (Sample) show
grestore
true %% transmit the page, set to false to not transmit the page
} bind
>> setpagedevice
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)