我有一个动态生成的PDF,可以是两种模式之一。如果处于草稿模式,唯一真正的区别是在每页上显示 DRAFT 的水印。
我正在使用页面事件,因此在首页上我打印图像,以便它在所有内容之下。当我在endpage事件上做到这一点时,它会在所有事情之上,这很糟糕。
我想在表格上有交替的颜色,以便更容易看到,但如果我将灰色背景设置为0.9,那么它是不透明的,并且水印被覆盖。如果我将背景颜色设置为null
且灰色为1.0,则它是透明的。
所以,我的问题是,在非白色的交替行上,我可以看到水印。
理想情况下,能够将图像放置在具有边框和背景颜色的图层顶部会很好,所以它会在文本下面,但是,它似乎不是一个选项,因为,当我使用带有内容层的印章,它将位于所有单元格之下,因为它们都设置了颜色,因此没有任何透明。
更新
我还没有尝试过,但似乎如果我保存PDF然后使用PdfStamper
我可以保存图形状态,设置图像的不透明度,然后恢复图形状态,然后可以工作。
http://www.vbforums.com/showthread.php?t=518686
但是,我没有看到任何方法去做我想要的而不先保存它,因为我实际上正在生成并直接流式传输到浏览器,并且如果可能的话,我宁愿不保存。
答案 0 :(得分:1)
通过在我的最终更新中使用链接,我能够获得水印。
所以,我保存文件,然后使用MemoryStream
读取文件并保存图形状态,设置不透明度,设置水印然后恢复图形状态。
然后我将其传回浏览器并删除该文件。
我还没有找到任何比这更好的方法。好的是水印不需要图像,因此我将字体大小设置为96pts,这在横向和纵向模式下似乎工作正常。