水印是把一些標識信息嵌入到信息載體中,在不影響原載體內容使用的同時,爲原做者提供識別的手段,進而防止被再次篡改,是一種保護信息安全和知識版權的有效方法。瀏覽器
說到水印,常見到紙的文件,通常經常使用 Word 或 pdf 編輯後打印所得,而且 offie 或 pdf 軟件也有直接增長水印的功能。安全
像 Word 中增長水印很簡單:菜單欄「設計」-「水印」(選擇「自定義水印」),能夠設置圖片或文字類水印。jsp
但同一個 word 只能設置一條水印內容,即只能是靜態水印,不能動態生成,如上面文字水印的「文字」內爲「我是 word 水印」,該 word 就只能提供這個固定的水印信息了,除非再次編輯 word 修改。工具
做爲數據呈現常常使用的統計報表,在展示、導出及打印時也一樣會須要水印支持。但不一樣的是,經過報表工具作水印除了靜態水印,還能夠是動態的。字體
如,基於同一個報表模板動態生成報告,不一樣用戶查詢的結果須要不一樣的水印內容作保護,動態水印就是亟需的功能。設計
舉個例子,「張三」訪問時,模板生成的報表水印爲「張三的報表」3d
「李四」訪問時,則爲「李四的報表」blog
實際上,這種功能就是報表工具軟件的優點了,報表除了靜態水印一樣支持動態水印。圖片
咱們以潤乾報表工具爲例,介紹下如何添加水印(圖片水印有專門文章介紹,這裏不作對比了)?過程是否是像 word 一樣簡單?get
首先,靜態文字水印
文字內容是在作報表的時候固定設置好的信息,只能經過修改報表模板更改。
其次、 動態水印
同一張報表,每次訪問時,能夠傳入當前要顯示的水印信息,實現動態添加水印內容,另種方式:
(1) 經過報表參數及水印內容表達式動態設置
(2) 經過填加報表展示標籤(水印屬性)
如,generateWaterMark=「水印信息」。
接下來咱們結合實例介紹具體的操做過程:
Ps:例子借用潤乾產品自帶 demo 應用,「基本報表」下的「網格式報表」
1、添加靜態水印
一、 打開並編輯「網格式報表」模板
菜單 -- 報表 -- 報表屬性—背景圖,選擇「水印」
二、 定義要顯示的水印信息
在「文本」輸入框內輸入要在報表內顯示的水印內容,如「該報表版權歸屬潤乾公司」
三、 保存模板並在瀏覽器預覽水印效果
以上即是靜態水印的設置方式,當須要更改顯示內容時,只能基於報表模板重複以上步驟。另外,水印能夠調整的樣式包括水平或傾斜方式、字體顏色、間距等。導出及打印時也同時保留水印。
2、添加動態水印
一、 方式一:參數 + 水印內容表達式
(1) 增長報表參數
定義參數爲 userID,用於接收當前用戶 ID
(2) 編輯水印內容表達式
編輯「網格式報表」,菜單欄「報表」-「報表屬性」-「背景圖」- 水印
「來源」-「表達式」
表達式爲:@userID+」的報表」
(3) 預覽結果
張三訪問時,userID 爲「張三」,結果
李四訪問
二、 方式二:經過報表標籤的的水印屬性值
(1)打開並編輯報表展示的 Jsp 文件
添加接收水印內容參數值的方法:
String waterMark = request.getParameter(「waterMark」);
(2)標籤內添加 generateWaterMark 屬性
添加屬性並定義接收到的水印參數:
(3)訪問報表並設置 waterMark 參數
如:http://localhost:6868/demo/reportJsp/showReport.jsp?rpx=10 基本報表 / 網格式報表.rpx&waterMark= 該報表版權所屬方爲潤乾公司
結果:
將 waterMark 值改成「該報表版權所屬方爲北京潤乾公司」
能夠看到水印內容對應發生改變。
經過以上方式便可實現潤乾報表中添加靜態及動態水印,比 word 工具功能齊全,方法操做簡單,屬性設置豐富