【问题标题】:How to watermark a dynamically generated PDF so watermark seen through non-transparent cells如何为动态生成的 PDF 添加水印,以便通过非透明单元格看到水印
【发布时间】:2009-12-22 03:40:35
【问题描述】:

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

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

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

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

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

更新:

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

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

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

【问题讨论】:

  • 为什么不直接使用 endpage 事件并以 10% 的不透明度打印水印?

标签: pdf-generation itextsharp watermark


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-14
    • 2017-08-07
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多