JasperServer 图表中文乱码解决

原创
2017/04/01 17:17
阅读数 500

JasperServer 图表中文乱码解决

问题描述

报表本地预览正常。上传到 Linux 服务器后,图表中的中文显示为“□”,其他地方中文显示正常。

问题原因

Jasper 图表生成使用了 JFreeChart,后者需要依赖本地字体。如果在 JasperServer 中找不到相应的中文字体,则会产生上述问题。

解决方式

可以将要用到的字体导入到 Jaspersoft Studio,在报表开发时使用这些定义的字体。然后通过该开发工具将用到的字体导出为 Jar 包部署到服务器中,即可解决该问题。具体步骤如下:

  1. 在 Jaspersoft Studio 中,通过 Window -> Preferences 进入 Preferences 窗口

    输入图片说明

  2. 通过 Jaspersoft Studio -> Fonts 进入 Fonts 设置页面

    输入图片说明

  3. 通过 Add From Path,选择路径将将用到的字体(.ttf 文件)导入到开发工具中。如果有多个字体,还可以添加一个 Set 字体集,方便使用

    输入图片说明

  4. 勾选要使用的字体或字体集,点击 Export,在指定位置导出为一个 jar 包

    输入图片说明

  5. 点击 Apply,OK,完成字体导入

    输入图片说明

  6. 开发图表时,将使用的字体全部选择为之前导入到开发工具中的字体,这些内置的字体会显示在一个分隔符上方(注意 Chart 和 Chart Plot 页签下的所有可以设置字体的地方都要这样处理)。改好之后重新发布到 JasperServer。

    输入图片说明

  7. 在服务器中,编辑 <js-install>\WEB-INF\classes\jasperreports.properties 文件,插入如下行:

    net.sf.jasperreports.web.resource.pattern.fonts=fonts/.*
    
  8. 将之前导出的字体 jar 包添加到 <js-install>WEB-INF\lib 路径下

  9. 关闭并重新启动 JasperServer。图表上的中文字体可以正确展示了!

    输入图片说明

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部