1. 描述
水印是爲防止造假、辨别真僞、版權保護等,而在紙張中加上的圖片與文字結合的透明效果,如下圖在報表中添加水印:
用戶在訪問報表的時候不需要看到水印,但打印到紙上時需要顯示水印,或者客戶打印報表的時候,希望根據自己情況選擇打印模板是否帶有水印,如第一次打印加水印,第二次打印不加水印,這樣的效果怎樣實現呢?
2. 解決方案
首先報表水印是通過給模板添加報表背景來實現;
控制打印時有無水印通過做兩張模板來實現(一張無水印的模板、一張加水印的模板),根據需要觸發不同的打印按鈕或打印方法選擇需要打印的模板。
3. 示例
3.1 水印報表制作
1)準備水印圖片
将所需的水印效果制作爲圖片,如下圖:
2)添加報表背景
我們以 GettingStarted.cpt 爲例,打開%FR_HOME%\webapps\webroot\WEB-INF\reportlets\GettingStarted.cpt,該報表沒有水印。
點擊模板>紙張背景>圖片,選擇設計好的水印圖片,選擇布局方式,如下圖:
水印效果如上圖,另存爲模板,如保存路徑爲%FR_HOME%\webapps\webroot\WEB-INF\reportlets\Watermark.cpt。
3.2 添加自定義按鈕觸發打印水印報表
打開原 GettingStarted 模板,點擊模板>模板 Web 屬性>分頁預覽設置,選擇 ,勾選 ,雙擊按鈕框中的自定義按鈕(或者選中自定義按鈕,點擊向上箭頭),則工具欄上就會顯示自定義按鈕,雙擊工具欄上的自定義按鈕(或者選中按鈕,點擊設置圖标),進入編輯界面,給自定義按鈕設置控件别名爲“水印打印”。如下圖:
點擊自定義 JaveScript,在彈出對話框 JaveScript 腳本中輸入打印事件如下,打印之前做好的水印報表 Watermark.cpt:
FR.doURLPDFPrint("http://localhost:8075/webroot/decision/view/report?viewlet=Watermark.cpt");
這時就可以實現,點擊報表工具欄本身的打印按鈕,則打印出來的是不帶有水印的,點擊水印按鈕時則實現打印水印報表了。
該自定義打印是通過 PDF 打印,其他打印方式可參考文檔 不預覽模板直接打印 裏面幾種打印方法的接口。
4. 移動端
移動端不支持各種打印和導出方式