2

我有一个动态生成的 PDF,它可以处于两种模式之一。如果在草稿模式下,唯一真正的区别是在每页上声明DRAFT的水印。

我正在使用页面事件,因此在起始页上打印图像,使其位于所有内容之下。当我在 endpage 事件上执行此操作时,它将位于所有内容之上,这很糟糕。

我想在表格上交替使用颜色,以便更容易看到,但如果我将灰色背景设置为 0.9,那么它是不透明的并且水印被覆盖。如果我将背景颜色设置为null,灰色为 1.0,那么它是透明的。

所以,我的问题是,在非白色交替行上,我可以看到水印。

理想情况下,能够将图像放在带有边框和背景颜色的图层顶部会很好,所以它会在文本下方,但是,当我使用图章时,这似乎不是一个选项在内容层下方,它将位于所有单元格下方,因为它们都设置了颜色,所以没有什么是透明的。

更新:

我还没有尝试过,但似乎如果我保存 PDF 然后使用PdfStamper我可以保存图形状态,设置图像的不透明度,然后恢复图形状态,它可能会起作用。

http://www.vbforums.com/showthread.php?t=518686

但是,如果不先保存它,我看不到任何方法可以做我想做的事情,因为我实际上是直接生成并流式传输到浏览器,如果可能的话,我宁愿不保存。

4

1 回答 1

1

通过使用我最终更新中的链接,我能够让水印工作。

因此,我保存文件,然后使用 aMemoryStream读取文件并保存图形状态,设置不透明度,设置水印,然后恢复图形状态。

然后我将其流式传输回浏览器并删除该文件。

我还没有找到比这更好的方法。好的是水印不需要图像,所以我将字体大小设置为 96pts,这在横向和纵向模式下似乎都可以正常工作。

于 2009-12-27T03:20:02.377 回答