页面树结构
转至元数据结尾
转至元数据起始

1、问题现象

对于电子表格报表,如下两种情形时,可能会出现中文变为乱码的情况。1)电子表格报表浏览时正常,但在打印报表、或将报表导出为 PDF 文件时,中文内容变成了方框(乱码字符)。2)电子表格中添加图形时,图形上的图例、或者坐标轴上的中文,也可能会显示为乱码。

 

文档目录:

  • 正常浏览:

  • 导出到 PDF 时出现异常(字符乱码):

 

2、问题原因

电子表格报表设置了某种字体,但服务器所在的操作系统上缺少对应的字体文件。尤其是当 Smartbi 部署到 Unix/Linux 等系统上时,最有可能出现该问题。这时可以使用 listFont.jsp 来检查系统已经安装什么字体。页面快捷入口:定制管理->系统运维->调试工具集->列出字体信息


3、解决办法

通常在 Windows 系统的 Fonts 目录下可以找到对应的字体文件,将其中的字体文件拷贝到服务器上(一般很难知道具体缺少什么字体,将其中的所有字体拷贝上去比较省事),放到上图中“External Font Dir”目录下,并重启应用服务器即可。重启后再次使用 listFont.jsp 确认可以看到该字体,然后再打印或者导出到 PDF 就正常了。

 

4、特殊情况

如果按照上述步骤操作后,仍然有中文乱码问题,可能是因为应用服务器所用的 JDK 没能正确地从上述“External Font Dir”目录下加载那些字体文件。万无一失的解决办法是,将字体文件拷贝到 JDK 自己的 fonts 目录下。JDK 对应的字体文件路径是:/jdk/jre/lib/fonts ,参见下图。