2009-12-22 81 views
2

我有一個動態生成的PDF文件,它可以處於兩種模式之一。如果處於草稿模式,則唯一真正的區別是在每個頁面上顯示DRAFT的水印。如何水印動態生成的PDF,以便通過非透明單元格看到水印

我正在使用一個頁面事件,所以在首頁我打印圖像,以便它在一切之下。當我在endpage事件中做到這一點的時候,它會成爲最重要的事情,這很糟糕。

我想在表格上交替顯示顏色,以便更容易看清楚,但是如果我將灰色背景設置爲0.9,那麼它是不透明的,並且會覆蓋水印。如果我將背景顏色設置爲null,並且灰色爲1.0,則它是透明的。

所以,我的問題是,在非白色交替行可以得到水印被看到。

理想情況下,能夠將圖像放置在具有邊框和背景顏色的圖層上是很好的,所以它會在文本下方,但是看起來不是一個選項,當我在底層內容層上使用郵票時,它將位於所有單元格下,因爲它們都具有顏色集,所以沒有任何內容是透明的。

UPDATE:

我沒有試過呢,但現在看來,如果我保存PDF,然後使用PdfStamper我可以保存圖形狀態,設置圖像的不透明度,然後恢復圖形狀態,它可能工作。

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

不過,我看不出有什麼辦法做想我沒有保存它,因爲我實際上產生和流媒體直接向瀏覽器,寧願不保存,如果可能的話。

+1

爲什麼不直接使用endpage事件並以10%的不透明度打印watermake? – 2009-12-22 03:46:02

回答

1

通過使用我的最終更新中的鏈接,我能夠得到水印工作。

因此,我保存文件,然後使用MemoryStream來讀取文件,並保存圖形狀態,設置不透明度,設置水印,然後恢復圖形狀態。

然後,我將其傳回瀏覽器並刪除文件。

我還沒有找到任何辦法可以做得比這更好。有趣的是,水印不需要圖像,因此我將字體大小設置爲96pts,而且在橫向和縱向模式下似乎可以正常工作。