Linux下IReport打印报错:Could not ***JRStyledTextParser , Font ‘宋体‘ is not available to the JVM**

ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题:
Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser

网上搜了好久,试过
在你的打印的类中增加静态代码块,如下:

static {
System.setProperty(“java.awt.headless”, “true”);
}
不行
解决办法:
1.把需要用到的字体(可以直接拷贝windows系统的C:\WINDOWS\Fonts 下的相关字体)拷贝当前项目的classpath下,一般为classes目录下
在这里插入图片描述

2.在classpath里添加 jasperreports.properties 属性文件

在这里插入图片描述
文件内容:

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.ireport=fonts/fontsfamily1559715270254.xml

然后重启服务即可。如果接下来继续报错
net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘宋体’ is not available to the JVM
说明没有找到这个字体
解决方法

打开jasperreports-5.6.0jar(我用的是这个版本),
找到:default.jasperreports.properties
在这里修改jasperreports的默认字体设置
修改为
net.sf.jasperreports.awt.ignore.missing.font=true
然后保存覆盖进去
把修改后的jar包重新放回去
重新启动项目 就ok了!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值