历史版本5 :影响导出打印效果的环境因素 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

导出打印在使用过程中,会有很多因素影响其最终的效果。通过对这些因素进行说明,来帮助用户更好的使用导出打印功能,主要影响的因素包括JDK、注册功能、字体、权限、浏览器等。

2、影响因素编辑

2.1 JDK

2.1.1 须知

(1)FineReport 10/11 设计器支持 JDK 版本:JDK 1.8 且小版本需在 JDK8u102 以上。

(2)FineReport11 有内置JDK 11 的设计器版本,可直接使用,详情请参见:内置JDK11的设计器

jdk1.8.0_262,jdk-8u231,jdk1.8.0_192 三个版本不建议使用导出功能将普通报表导出为 PDF 或图片。

2.1.2 案例

(1)导出图表空白

问题描述:

1)导出图表空白,且模板有报错信息:"C library and JDK version do not meet the requirements, Please upgrade GBLIC to 2.17 And GLIBCXX to 3.4.19 or JDK to 1.8"

2)定时调度时,导出图表空白,系统消息提示运行失败,日志中报错:"C library and JDK version do not meet the requirements, Please upgrade GBLIC to 2.17 And GLIBCXX to 3.4.19 or JDK to 1.8"

原因分析:导出的模板中存在图表,由于工程缺少j2v8相关的环境,用nashorn性能比较慢。需要升级GCC

解决方案:升级GCC编译环境,详情请参见:图表导出升级说明

(2)图片预览正常,导出底色变红

问题描述:图片预览正常,导出底色变红,大部分图片导出都异常

原因分析:jdk里imageio.read特定图片的bug

解决方案:用自定义函数和png格式图片规避

(3)导出PDF未换行或者文字重叠

问题描述:导出PDF后,原本需要换行的地方没有换行,内容溢出到右边。字没有分开,挤在一起

原因分析:JDK bug

解决方案:更换JDK

2.2 字体

2.1.1 字体使用逻辑

预览、导出、打印报表时,报表最终呈现的字体效果和设计器、服务器、浏览器所在的本地系统紧密相关。

预览、导出、打印报表时,字体主要来源于以下三个字体库:

  • 系统字体:设计器、服务器、浏览器所在设备的系统字体。Windows系统所在位置:C:/Windows/Fonts;Linux系统所在位置:/usr/share/fonts

  • 服务器依赖的 JRE 下的字体:%Tomcat%jre/lib/fonts

  • 安装「性能优化插件」后对应的字体文件:%FR_HOME%/webroot/WEB-INF/fonts

不同场景,使用的字体库不同。如下表所示:

使用方式
字体来源
设计器设计时选择的字体 设计器所在电脑的系统字体+设计器工程依赖的 JRE 下的字体+性能优化插件字体(若安装了插件)
Web 端预览时使用的字体Web 浏览器所在电脑的系统字体
导出时使用的字体服务器的系统字体+服务器依赖的 JRE 下的字体+性能优化插件字体(若安装了插件)
打印时使用的字体零客户端打印时和导出相同,本地软件打印时使用本地系统字体和打印软件 JRE 下的字体

详情请参见:字体缺失检测

2.2.2 字体缺失时的现象

  • 导出图表时,图例、分类名包含中文+英文的字符串时,比如“一二三abc”,导出会发生上下错位;文字空白,只有图表

  • pdf导出时,文字挤压重叠/模糊/乱码/变成另外一种字体

  • 打印结果有偏移/针式打印断断续续/条形码打印时错开

  • 前台明确提示:不支持这个字体


2.2.3 字体不支持时的现象

  • 上标显示异常,因为宋体没有上下标设置,大部分字体也只支持数字1,2,3

  • 带√ 的框型字符无法正常导出,因为特殊符号并不是所有字体都能绘制,excel可以自动选择可以绘制的字体,PDF不会自动选择

  • 本地设计器导出的pdf里面的字体不一样,因为字体本身权限有问题,字体嵌入性受限