常见问题

1 大数据量打印

对于大数据量的报表,UniEAP Report 推荐使用Applet方式打印。在打印大数据量报表时,系统会根据报表页数对报表进行分作业打印,打印预览时仅可以看到首个作业的预览效果。报表引擎会将报表按每次50页或一个报表分段作为一个打印作业,考虑网络传输等因素和具体需求,如果该值有不合适的情况,可以在报表引擎配置文件中配置print_pages_per_document参数,对划分的页数进行调节。

【注意】如果对大数据量报表使用 Flash 方式打印,打印结果可能会不完整。

2 Excel /PDF打印与报表打印功能区别

在一些特殊情况下,针对同一张报表用户既希望通过报表应用打印,又希望根据导出后的Excel或PDF文件进行打印,并同时使用多种打印结果。但由于报表在导成Excel、PDF时,会经过一些长度单位的换算,会损失一些精度。因此,导出后的文件和在Web端报表展现效果达不到100%的一致,这也是业内普遍存在的问题,但不会影响正常的使用。但对于打印精度要求比较高的客户,UniEAP Report推荐如下两种解决方案:

1.一张报表尽量使用一种打印方案;

2.修改报表导出Excel、PDF的action相关代码。在报表导出时,通过后台控制导出另一张报表(内容、样式一致,而内容的打印位置不同),避免不同格式报表的打印误差。此方案已经成功应用在多个项目中。

3 打印图片、图表

在打印图片时,如果图片大小超过页面大小,在打印预览时会按原尺寸全部显示,但打印时图片会被截断,截断部分也不会出现在后续打印页中。

在打印图表时,如果图表大小超过页面大小,图表会在当前页被缩放打印,不出现在后续打印页中。

4 Web端保存偏移量设置

在客户端打印预览报表时,对报表的边距等属性进行修改之后,系统会将这些设置保存到浏览器的Cookie中,在同一浏览器中打印任意报表时,边距等设置会默认使用上次修改后的值。

另外,可以以手动添加cookie的方式为对打印机定制偏移量,预览时看到的偏移量为默认偏移量,而打印时会使用该打印机的偏移量进行打印。打印机偏移量cookie的名称分别为:

纵向偏移量:topMarginOffset# +打印机名

横向偏移量:leftMarginOffset# +打印机名

5 Applet打印去除确认提示框的方法

去除打印确认提示框的方法:

1

5.1 方法一

修改修改客户端${java.home}/jre/lib/security目录下的java.policy文件,增加如下的红色加粗内容:

2

【注意】

1.修改java.policy文件,会对客户端所有java程序都生效,因此需要确认客户端安全情况下再修改。

2.客户端有可能同时安装了jdk和jre,那么java.policy文件会有两份,比如位置分别为

  • C:\Program Files (x86)\Java\jdk1.6.0_19\jre\lib\security
  • C:\Program Files (x86)\Java\jre6\lib\security

    在不确认自己的环境修改哪个会生效,就同时修改这两个目录下的java.policy文件;

    3.对于win7 64bit等操作系统,会有如下两个目录

  • C:\Program Files (x86)\Java\
  • C:\Program Files\Java\ 可能两个目录中都安装有JRE,区别是一个为32位,一个为64位,修改前也要确认使用的是哪个目录下的JRE。

    4.在程序中内置了一个exe程序,运行后,可直接修改客户端的这个配置文件,可视具体情况选择是否使用。但该程序仅限windows XP系统。

5.2 方法二

通过对jar进行数字签名解决,前提是需要购买浏览器内置的根证书认可的数字证书,才能保证打印时没有任何的安全提示。

数字签名制作方法:

  • 前提
    • 签名有效期默认为6个月,可以通过修改参数变更;
    • 以下将以unireport表示签名名称;
    • printclient.jar表示所要签名jar包;
  • 步骤

    1.生成密钥库

keytool -genkey -v -alias unireport -keyalg RSA -keysize 1024 -keypass 111111 -dname "cn=Neusoft,ou=Web Servers,ou=Local RA,o=CFCA Operation CA2,c=cn" -keystore unireport.keystore -storepass 111111

2.生成证书请求

keytool -certreq -v -alias unireport -sigalg MD5withRSA -file unireport.pem -keypass 111111 -keystore unireport.keystore -storepass 111111

3.将证书请求提交给证书颁发机构,申请签名证书

4.导入根证书(根证书来自于证书颁发机构,如果是浏览器内置的根证书,则不需要导入)(如果提示编码问题,需要先在IE中导入,在将证书导出)

keytool -import -alias root -trustcacerts -file CA365FreeRoot.cer -keystore unireport.keystore -storepass 111111

4.导入证书(证书来自于证书颁发机构)

keytool -import -v -trustcacerts -keypass 111111 -alias unireport -file Neusoft.cer -keystore unireport.keystore -storepass 111111

5.查看

Keytool -list -v -keystore unireport.keystore

6.签名

jarsigner -keystore unireport.keystore printclient.jar unireport

6 控制报表页面打印菜单中的显示条目

如下图所示,当在浏览器中查看报表时,报表页面右上方的工具栏中,默认会有两个与打印相关的下拉菜单,分别为“预览打印”和“一键打印”。默认情况下,两个下拉菜单中的显示条目是相同的,包括UniEAP Report支持的所有打印方式和“自动选择”。

当单击菜单按钮时,执行的是菜单条目中的第一个(对于下图来说,就是执行自动选择功能)。

3

修改打印菜单中的显示条目有两种方法,一种是针对所有报表的统一设置,另一种是针对个别报表的单一设置。

6.1 统一设置方法

这种方法需要修改/unieap/pages/report/jsp/show/ClientShow.jsp文件中下图所示的代码。

4

其中previewPrintTag对应“预览打印”,silentPrintTag对应一键打印。clients指定的就是菜单的显示条目,通过修改它的值即可控制页面上菜单中的显示条目。

要改变点击菜单按钮时执行的打印方式,只需将相应的字符串移动到最前面。

【例】只显示Flash、Applet两种打印方式,且单击菜单按钮时执行Applet打印:

5

页面显示结果如下图所示。

6

6.2 单一设置方法

这种方法需要修改报表定义文件。如下图所示,在报表设计器的“报表属性——页面标签”中,可以分别控制每种打印方式是否出现在页面上的打印菜单中。

7

7 Applet打印出现异常时的调试方法

使用Applet控件打印时,如果出现打印异常,需要查看具体的异常信息,才好做深层次的分析,下面是具体的分析方法

1.确认已经安装了jre环境,并且浏览器已经正常加载了java运行环境,firefox以及IE的确认方法如下:

  • Firefox浏览器查看方法如下
    打开Firefox浏览器的‘工具’中的‘附件组件’菜单,在打开页面的‘插件’栏中可以看到如下内容

8

不仅要有两个java相关的插件,而且需要确认是不是属于‘激活’状态。

9

  • IE浏览器查看方法如下
    打开‘工具’菜单中的‘管理加载项’

10

在左侧的‘工具栏和扩展’中查看java相关的插件是否已经安装,并需要确认是不是处于‘启用’状态。

11

【注意】如果在浏览器中没有找到jre的插件,说明jre没有安装,或者安装的不正确。需要重新安装。

2.打开控制面板,找到java选项,如下图:

12

3.点击java选项,按照下图进行设置

13

4.再次在浏览器上运行报表时,就会显示java控制台,如果报错,具体的错误异常也会在控制台中显示,如果自己无法处理,可以将具体的异常信息发给产品支持人员,由我们进行分析

14

8 Applet打印出现IE错误“Java(TM) 已被阻止,因为它已过时并且需要更新。”的解决方法

近期(2014年10月)在IE下使用Applet打印时,经常出现“Java(TM) 已被阻止,因为它已过时并且需要更新。”这个错误,如下图:

15

经查,这个提示是因为微软+在2014年9月9日为IE浏览器启用一个叫Out-of-date ActiveX control blocking的新特性。此特性会检查 IE插件的版本是否为最新版本,如果不是最新版本,则要求用户升级组件。对于UniEAP Report来说,微软会检查JRE的版本,因为大量的用户使用的都是版本较旧的JRE,而让每个用户的客户端升级JRE会造成大量的不便。

解决办法:

如果你确实充分信任你访问的网站(比如内部系统),推荐的解决方法是添加访问网址到信任站点,微软就不会因为插件版本低而阻止用户继续使用了。

16

17

【注意】需要去掉 “对该区域中的所有站点要求服务器验证 (https:)”的勾,才能添加网址,网址开头是 http,不要带https

results matching ""

    No results matching ""

    results matching ""

      No results matching ""