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. 移动端
移动端不支持各种打印和导出方式