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

最終項目截圖: 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章