我正在使用iTextSharp向现有的PDF格式文档添加水印。我读入它们,创建一个PdfTemplate对象,添加水印文本,颜色,透明度等……添加到此PdfTemplate,然后将模板添加到我使用PdfWriter.DirectContent获得的PdfContentByte中。
这个解决方案已经在我扔给它的所有文档中工作了一段时间了,但由于某种原因,一些特定的PDF在水印文本周围打印了一个不透明的矩形。
我已经尝试了许多方法,包括将PdfGState的OverPrintMode设置为1,在创建文件后打开生成的文件,然后在保存新副本之前使用PdfStamper的setFormFlattening和setFreeTextFlattening……到目前为止,一切都没有奏效。
问题是我不关心展平表单域或按钮,我只想在生成整个文档之后展平文档的所有层。使用iText应用编程接口可以做到这一点吗?
发布于 2012-12-14 19:51:54
好了,回到这里来结束这个问题,因为我很久以前就解决了这个问题:
问题是,有这个问题的PDF非常旧(PDF标准的1.3版),不支持作为水印元素一部分的透明度。
我通过虚拟打印机将旧的PDF打印成临时文件,然后继续处理该文件,这是PDF标准的更新版本,从而解决了这个问题。
https://stackoverflow.com/questions/6494757
复制相似问题