我正在尝试用ghostscript给pdf加上水印。早些时候,我通过ghostscript甚至在pdf中基于文本的水印添加了页码,但是内容上方和下方的透明度和水印似乎是一个问题,为此,我尝试使用Postscript的PDFMARK扩展名失败。下面是ps代码(在EndPage的正文中),我故意尝试编写文本而不是Stroke,以便允许粗体,斜体和下划线。我正在考虑从php更改为任何其他语言,如果它提供了免费的替代方法。
/Helvetica 44 selectfont
(Shadab Hussain Watermark on Test)
dup
stringwidth pop
currentpagedevice /PageSize get 0 get
exch sub 2 div
currentpagedevice /PageSize get 1 get 2 div moveto
show
您无法在PostScript中执行透明性,因为图形模型不支持透明性。这是PostScript和PDF之间的主要区别之一。
Ghostscript确实对PostScript图像模型进行了一些扩展,这将允许some使用PostScript中的PDF透明性,但是它并不简单。您应该(使用Ghostscript Git存储库中的最新HEAD)查看ghostpdl / examples / transparency_example.ps,以获得使用PostScript透明性的示例。请注意,这些扩展是totally Ghopstscript特定的,不适用于任何其他PostScript解释器。
关于内容的“上方”和“下方”。您可以在BeginPage上执行PostScript程序(在这种情况下,它应放置在PDF内容之前,并且可能会被它覆盖)(提示:许多PDF文件以覆盖页面的白色矩形开头),或者执行PostScript程序在EndPage上(两种方法都可行),在这种情况下,它会覆盖已经绘制的内容。
这里使用php是无关紧要的,但事实是您没有提供完整的程序,只是一个fragemnt(是的,您在EndPage上说了它,但您没有显示它),也没有提供完整的程序说明。问题(“似乎是问题”对于问题的性质不是很有帮助),并且您没有提供示例PDF文件进行测试。最终,您没有给我们提供Ghostscript命令行,并且您使用的Ghostscript版本也将是有用的信息。
在问问题和发表沮丧的评论之间的15分钟内非常短。您可能需要等待几个小时甚至几天才能得到答案。