報表中怎麼新增動態文字水印

xiaohuihui發表於2019-11-21

水印是把一些標識資訊嵌入到資訊載體中,在不影響原載體內容使用的同時,為原作者提供識別的手段,進而防止被再次篡改,是一種保護資訊保安和知識版權的有效方法。

說到水印,常見到紙的檔案,一般常用 Word 或 pdf 編輯後列印所得,並且 offie 或 pdf 軟體也有直接增加水印的功能。

像 Word 中增加水印很簡單:選單欄“設計”-“水印”(選擇“自定義水印”),可以設定圖片或文字類水印。

1png

但同一個 word 只能設定一條水印內容,即只能是靜態水印,不能動態生成,如上面文字水印的“文字”內為“我是 word 水印”,該 word 就只能提供這個固定的水印資訊了,除非再次編輯 word 修改。

作為資料呈現經常使用的統計報表,在展現、匯出及列印時也同樣會需要水印支援。但不同的是,透過報表工具做水印除了靜態水印,還可以是動態的。

如,基於同一個報表模板動態生成報告,不同使用者查詢的結果需要不同的水印內容做保護,動態水印就是亟需的功能。

舉個例子,“張三”訪問時,模板生成的報表水印為“張三的報表”

2png

“李四”訪問時,則為“李四的報表”

3png


首先,靜態文字水印文字內容是在做報表的時候固定設定好的資訊,只能透過修改報表模板更改。

4png

其次、 動態水印

同一張報表,每次訪問時,可以傳入當前要顯示的水印資訊,實現動態新增水印內容,另種方式:

(1) 透過報表引數及水印內容表示式動態設定

(2) 透過填加報表展現標籤(水印屬性)

如,generateWaterMark=“水印資訊”。

接下來我們結合例項介紹具體的操作過程:

一、新增靜態水印

1、 開啟並編輯“網格式報表”模板

選單 -- 報表 -- 報表屬性—背景圖,選擇“水印”

5png

2、 定義要顯示的水印資訊

在“文字”輸入框內輸入要在報表內顯示的水印內容,如“該報表版權歸屬潤乾公司”

3、 儲存模板並在瀏覽器預覽水印效果

6png

以上便是靜態水印的設定方式,當需要更改顯示內容時,只能基於報表模板重複以上步驟。另外,水印可以調整的樣式包括水平或傾斜方式、字型顏色、間距等。匯出及列印時也同時保留水印。

二、新增動態水印

1、 方式一:引數 + 水印內容表示式

(1) 增加報表引數

7png

定義引數為 userID,用於接收當前使用者 ID

(2) 編輯水印內容表示式

編輯“網格式報表”,選單欄“報表”-“報表屬性”-“背景圖”- 水印

“來源”-“表示式”

8png

表示式為:@userID+”的報表”

(3) 預覽結果

張三訪問時,userID 為“張三”,結果

9png

李四訪問

10png

2、 方式二:透過報表標籤的的水印屬性值

(1)開啟並編輯報表展現的 Jsp 檔案

新增接收水印內容引數值的方法:

String waterMark = request.getParameter(“waterMark”);

(2)標籤內新增 generateWaterMark 屬性

新增屬性並定義接收到的水印引數:

11png

(3)訪問報表並設定 waterMark 引數

如:

結果:

12png

將 waterMark 值改為“該報表版權所屬方為北京潤乾公司”

13png

可以看到水印內容對應發生改變。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2665129/,如需轉載,請註明出處,否則將追究法律責任。

相關文章