最近使用Ireport+JasperReport进行设置报表的预览打印,出现pdf中文不显示及设置样式失效,总结解决方案
方法一:
1.下载字体文件,比如STSONG.ttf文件
2..创建fonts.xml *记得必须要扫描到这个配置文件哦
fonts.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="华文宋体">
<normal>fonts/STSONG.TTF</normal>
<bold>fonts/STSONG.TTF</bold>
<italic>fonts/STSONG.TTF</italic>
<boldItalic>fonts/STSONG.TTF</boldItalic>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
<exportFonts>
<export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export>
<export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export>
</exportFonts>
</fontFamily>
</fontFamilies>
3.创建jasperreports_extension.properties
jasperreports_extension.properties文件内容:
# JasperReports字体配置的工厂
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
# 指定字体配置的位置
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
**fonts是放fonts.xml的文件,字体包和配置文件都放在那,名字自定义的
方法二:如果还要引入其他字体
1.引入的字体包,一定不能是中文,要英文,或字母自定义就可以
比如微软雅黑,就自定义名字weiruanyahe(其他名字也可)
引入字体后,其余步骤和方法一一样,只是引入字体不同而已
*****有个缺点,就是如果要使用到什么字体,就得把该字体引入才可使用,很麻烦,有更方便的解决方案,欢迎分享