1. 概述
1.1 应用场景
为了提升用户的体验、简化打印的场景,FineReport 10.0 对打印功能进行了升级,将各种打印方式整合到一起,形成一个统一的打印入口,让客户的选择变得更加简单清晰。
注1:11.0 设计器和部署包使用的都是 openjdk,而使用 openjdk 无法启动 flash 打印,但使用 Oracle/sun jdk 可以。
注2:flash 打印目前是已经被淘汰了的技术,很多浏览器都将不再支持 flash 打印,建议客户使用零客户端或本地打印。
注3:仅普通报表支持打印。
1.2 功能简介
打印有以下特点:
易用性强:易于设置,可预先进行页面设置传递至打印机,并可以保存用户打印习惯,无需复杂设置,一键打印。同时对于市面上几乎所有类型打印机都能很好的支持。针式、 热敏打印机打印是容易出现打印不清晰、打印效果不好的问题都能通过本地软件打印得到解决。
功能丰富:提供套打、批量打印、打印内容控制、打印偏移、静默打印等丰富的功能。
性能强大:相同环境下,零客户端打印耗时不到同类竞品的一半,本地软件打印耗时不到同类竞品的 1/3。
2. 打印功能
打印支持两种打印方式:
零客户端打印:无需安装打印软件,任何机器上随时都能打印,适合更偏向打印便捷性的客户。
本地软件打印:需要安装打印软件,适合固定机器进行大量打印的客户,有更高的效率和更丰富的设置,不受浏览器约束。
功能 | 简介 | 零客户端打印 | 本地软件打印 | 相关文档 |
---|---|---|---|---|
首选打印机 | 支持报表绑定打印机,打印报表时优先选择绑定的打印机进行打印,免去了用户每次都要选择打印机的麻烦 | 不支持 | 支持 | - |
打印偏移 | 增加页面边距设置,可以调整打印内容的边距来进行打印偏移,以适应不同打印机的打印效果不同的问题 | 支持 | 打印偏移 | |
静默打印 | 打印继承模板中的纸张、布局和边距设置,可在设计器中提前设置好要打印的样式,用户直接使用统一设置,不再弹出设置窗口 | IE 下支持 其他不支持 | 支持 | 静默打印 |
打印内容控制 | 可在设计器中通过对内容进行设置,实现内容是否打印 | 支持 | 打印单元格 | |
套打 | 支持发票、货运单等内容的套打 | 支持 | 套打 | |
批量打印 | 支持对单张模板多个参数值进行批量打印 | 支持 | 批量打印 | |
服务器端打印 | 提供了易调用的 JS 接口,直接调用服务器连接的打印机,可解决本地PC没有连接打印机无法打印的问题 | 支持 | 服务器端打印 | |
Https 下的打印 | 在 https 环境下使用 FineReport11.0,支持使用本地打印功能 | 支持 | 本地打印 https 配置说明 | |
跨域打印 | - | 不支持 https 访问 http 支持 http 访问 http 支持 http 访问 https 支持 https 访问 https | - |
3. 打印设置
3.1 设置方法
3.1.1 服务器配置
设计器菜单栏点击「服务器>服务器配置>打印设置」,可设置打印方式,对所有模板生效,如下图所示:
3.1.2 模板配置
点击「模板>打印设置」,默认为「采用服务器设置」,可选择「为该模板单独设置」,则只对当前模板有效,如下图所示:
3.2 零客户端打印
零客户端打印设置内容如下图所示:
各项设置的定义如下表所示:
设置 | 定义 | |
---|---|---|
打印时可设置打印边距 | 勾选 | 弹框对打印边距进行设置 |
不勾选 | 直接使用默认设置中的打印边距 | |
IE 浏览器中不显示打印设置 | 勾选 | IE 浏览器使用静默打印功能 |
不勾选 | IE 浏览器中显示打印设置 | |
针式打印优化 | 勾选 | 打印时,将文字字体替换为黑体以优化打印效果 |
不勾选 | 打印实际的文字字体 | |
继承页面边距设置 | 勾选 | 继承页面边距设置 |
不勾选 | 自定义设置上下左右的边距 |
3.3 本地软件打印
3.3.1 软件安装
选择本地软件打印,需在客户端安装 FinePrint 软件。点击下载 FinePrint V6 版本
用户可在「服务器配置>打印设置」中设置软件下载地址,如下图所示:
设置的定义如下表所示:
设置 | 定义 | |
---|---|---|
软件下载地址 | 勾选「默认」 | 打印软件的下载地址为默认地址(FineReport 提供的下载地址) |
不勾选「默认」 | 可以自定义下载地址,当客户使用的是内网时,可以设置内网地址来下载 例如在软件下载地址里填相对路径 /webroot/FinePrint_Windows_5_0.exe ,可以将下载的 FinePrint 软件放在报表路径 webroot 下 | |
打印软件端口号 | IE 浏览器使用静默打印功能 注:远程设计修改打印端口后,需要重启工程才可生效 |
3.3.2 基础设置
本地软件打印基础设置内容如下图所示:
设置的定义如下表所示:
设置 | 定义 | |
---|---|---|
打印时需要打印设置窗口 | 勾选 | 弹框对打印属性进行设置 |
不勾选 | 继承模板中的纸张、布局和边距设置,可在设计器中提前设置好要打印的样式,用户直接使用统一设置,不再弹出设置窗口,实现静默打印 | |
打印时需要指定 sheet | 默认不勾选。 勾选后,打印时,点击打印按钮弹出如下弹窗,默认选中所有 sheet,如下图所示: 注:分页预览下不支持 | |
打印机 | 支持报表绑定打印机,自动获取本地可用的打印机,无可用打印机时,显示为空 | |
份数 | 打印的份数,默认为 1 份 | |
页码 | 默认打印「所有页」 勾选「指定页」时,在后面文本框中输入符合格式要求的数值 勾选「双面打印」,可以设置打印「奇数页」或者打印「偶数页」 | |
纸张 | 勾选 | 继承页面纸张设置 |
不勾选 | 在下拉框中设置需要打印的纸张大小。 | |
布局 | 勾选 | 继承页面布局设置 |
不勾选 | 自定义设置页面是纵向还是横向打印,默认为纵向 | |
边距 | 勾选 | 继承页面边距设置 |
不勾选 | 自定义设置页面的上下左右边距 | |
缩放 | 勾选 | 根据纸张大小缩放打印 |
不勾选 | 自定义缩放的比例 |
4. 打印按钮
点击「模板>模板 Web 属性」,根据模板类型选择「分页预览设置、填报页面设置、数据分析设置」,设置「为该模板单独设置」,双击打印按钮,在工具栏中新增打印按钮,如下图所示:
注1:老的打印按钮,显示为「打印(兼容)」。
注2:版本升级后,老的打印按钮无法添加到工具栏上进行使用,若想使用老的打印方法,可以通过在工具栏中添加自定义按钮调用接口的方法实现。接口详情请参见:JS 调用 FR 打印方法。
5. 打印权限
JAR 包时间在 2020-04-26 及之后的 FineReport,新增打印鉴权机制,打印权限受 模板认证 权限控制。
打印鉴权机制适用于「本地打印、零客户端」打印和兼容的多个打印方式( PDF 打印、Flash 打印),服务器端打印不受限制。
注:跨域情况下打印,模板认证控制打印权限功能需要做单点登录,否则无法支持模板认证。
5.1 打印鉴权机制
情况 | 打印权限 | 提示 |
---|---|---|
模板认证关闭 | 「任何用户」可打印任何模板 | - |
模板认证开启 模板无需认证 | ||
模板认证开启 仅认证用户密码 | 「登录用户」可以打印任何模板 | 未登录用户打印时提示:请登录后进行打印 |
模板认证开启 角色权限认证 | 「登录用户」可以打印「有权限」的模板 | 登录用户打印无权限模板时提示:此用户无权限打印该模板 未登录用户打印时右上角提示:请登录后进行打印 |
模板认证开启 数字签名认证 | 「通过数字签名认证」的用户可以打印「有权限」的模板 | 通过数字签名认证的用户打印无权限模板时提示:此用户无权限打印该模板 未通过数字签名认证的用户打印时提示:此用户无权限打印该模板 |
5.2 跨域打印鉴权
跨域打印时,需要点击「服务器>报表平台管理」登录数据决策系统,再点击「管理系统>安全管理>安全防护」,点击 Security Headers 的「高级管理」,关闭「点击劫持攻击防护」和「内容嗅探攻击防护」。如下图所示:
6. 注意事项
打印相关问题及解决方案请参见:打印问题汇总