1. 概述编辑
1.1 版本介绍
报表服务器版本 | JAR 包版本 | 功能变动 |
---|---|---|
10.0 | 2020-04-26 | - |
2020-09-29 | 支持导出图片填充效果 |
1.2 问题描述
2020-04-26 及之后版本的 JAR 包,取消了使用 phantomjs 方案导出图表,改用新方案导出。
FineReport 使用导出、定时调度、设计器内图表展示功能时。若报表部署在 Linux 环境下,且 JDK 版本在 1.8 以下,则需要加载 J2V8 的 libj2v8_linux_x86_64.so,依赖相应版本的 GCC ,如果 GCC 版本过低,则会存在以下问题:
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"
那么如何实现在 JDK1.8 以下且不含有 J2V8 的环境中可以正常使用图表导出和定时调度功能呢?
注:即使用户 JDK 版本在 1.8 以上, 也建议用户优先考虑升级 GCC 环境方案。升级后导出性能会得到提升。
1.3 解决思路
升级 Linux 系统中的 GCC 版本,在图表绘制时使用 J2V8 作为 JS 运行环境。
2. 操作步骤编辑
2.1 判断是否需要升级
在升级前需要先确认当前系统中的 GCC 版本,使用如下命令,分别查看系统是否存在GLIBC_2.17和GLIBCXX_3.4.22 。
查看系统是否存在GLIBC_2.17:
strings /lib64/libc.so.6 | grep GLIBC
查看系统是否存在GLIBCXX_3.4.22:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
若查看系统没有对应 GCC 版本,则可按需考虑是否升级。
2.2 升级步骤
点击下载升级工具:升级工具.zip,解压升级工具,拷贝至非 usr 的任意目录下,cd 进入该目录,执行如下命令:
chmod 755 glibcxx_3.4.22.sh
chmod 755 glibc_2.17.sh
./glibcxx_3.4.22.sh
./glibc_2.17.sh
此处chmod为脚本增加执行权限,./为执行获取的脚本。
执行命令后,系统即自动升级 GCC 的版本。
3. 升级风险编辑
1)GLIBC
GLIBC 是 C 运行库,是 Linux 系统中最底层的 API ( 包括 Linux 的各种命令都依赖于此库 ),如果系统内有其他重要项目,请谨慎升级。( 对应的升级文件为 glibc_2.17.sh )
2)GLIBCXX
GLIBCXX 是 C++ 运行库,升级一般不会产生太大的影响,并且如果升级之后出现了问题,可以对版本进行回退。( 对应的升级文件为 glibcxx_3.4.22.sh )
4. 常见问题编辑
4.1 设计器内图表标签和图例模糊
1)问题描述
设计器内设计图表时,图表的标签和图例都比较模糊,如下图所示:
2)解决方案
这是由于设置了灰色背景导致的,换成白色背景即可。
4.2 不支持 html 解析
勾选了使用html解析文本内容,可能导致文本被截断等现象,如下图所示:
4.3 词云非默认形状错误
词云切换非默认形状或者上传一张图片,由于目前不支持图形路径,所以设计器中和导出时并不会按照该形状展示。如下图所示:
4.4 地图自定义 TileLayer 背景空白
地图 GIS 图层如果选择 TileLayer ,并且 URL 是一张图片时,在设计器中或导出时,地图背景为空白,不会显示那张图片,如下图所示
4.5 其他问题
1)使用 canvas 导出,工具栏和交互控件不导出。
2)交互后导出或有缩放控件设置了边界,导出的是交互前或缩放前的图表。