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.SimpleFontExtensionsRegistryFactorynet.sf.jasperreports.extension.simple.font.families.default=fonts/fonts.xml
最终项目截图:
Jasper报表导出pdf中文不显示——Font simsun is not available to the JVM. See the Javadoc for more det 已解决