Jasper报表导出pdf中文不显示——Font "simsun" is not available to the JVM. See the Javadoc for more det,已解决

Exception in thread "main" net.sf.jasperreports.engine.util.JRFontNotFoundException: Font "simsun" is not available to the JVM. See the Javadoc for more details.

JasperReports报表打印pdf中文不显示,以及出现字体找不到,是因为japserreports.jar中的fonts并没有中文设置;用以下两种方法都可以解决:

第一种方法:修改jar包:

1.下载中文字体,我这里下载的是simsun.ttf宋体

2.下载jasperreports-6.2.2.jar(版本随意)

3.解压jar包,解压后目录如下

4.找到net\sf\jasperreports\fonts目录,新建chinese文件夹,如下

5.把下载的中文字体拖拽到chinese文件夹下

6.返回fonts目录,修改jasperreports-fonts.xml文件,在Familes节点添加:

<fontFamily name="simsun">
        <normal>net/sf/jasperreports/fonts/chinese/simsun.ttf</normal>
        <bold>net/sf/jasperreports/fonts/chinese/simsun.ttf</bold>
        <italic>net/sf/jasperreports/fonts/chinese/simsun.ttf</italic>
        <boldItalic>net/sf/jasperreports/fonts/chinese/simsun.ttf</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
 </fontFamily>

7.打开cmd,切到jasperreports-6.2.2目录,进行打包:”jar cvf jasperreports-6.2.2.jar *  “,打包后的目录如下

8.替换之前的jar包,重新运行项目,ok啦

 

第二种方法:不修改jar包:

1.在resource目录下,添加fonts文件夹,在该目录下添加font.xml以及下载的中文字体:

font.xml

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

	<fontFamily name="simsun">
		<normal>
			<ttf>fonts/simsun.ttf</ttf>
			<svg>fonts/simsun.ttf</svg>
			<eot>fonts/simsun.ttf</eot>
			<woff>fonts/simsun.ttf</woff>
		</normal>
		<pdfEncoding>Identity-H</pdfEncoding>
		<pdfEmbedded>true</pdfEmbedded>
	</fontFamily>

</fontFamilies>

2.在resurce目录下添加jasperreports_extension.properties文件,就ok啦

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

最终项目截图: 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值