iText水印文本的扁平化问题



我正在使用iTextSharp为PDF格式的现有文档添加水印。我读入它们,创建一个PdfTemplate对象,将水印文本、颜色、透明度等添加到这个PdfTemplate中,然后将模板添加到我使用PdfWriter.DirectContent.获得的PdfContentByte中

这个解决方案已经为我扔给它的所有文档工作了一段时间,但出于某种原因,一些特定的PDF在水印文本周围打印了一个不透明的矩形。

我已经尝试了很多事情,包括将PdfGState的OverPrintMode设置为1,在创建后打开生成的文件,然后在保存新副本之前使用PdfStamper的setFormFlatting和setFreeTextFlatting。。。到目前为止,一切都不起作用。

问题是,我不在乎压平表单字段或按钮,我只想在生成整个内容后压平文档的所有层。这在iText API中是否可行?

好吧,回来结束这个问题,因为我很久以前就解决了:

问题是,有问题的PDF非常旧(PDF标准的1.3版),不支持作为水印元素一部分的透明度。

我通过虚拟打印机将旧的PDF打印到一个临时文件中,然后继续处理该文件,这是PDF标准的新版本。

最新更新