JasperReport从6.x版本开始,PDF的中文问题,不再依赖iTextAsian.jar包了。统一改用font字体。JasperrReport6中字体不支持中文,需要自己扩展。
扩展中文的步骤如下:
1 解压jasperreports-fonts-6.1.1.jar
将jasperreports-fonts-6.1.1.jar扩展名修改为rar然后解压,
2 将字体文件拷贝到fonts目录
目录如下:
C:\jasperreports-fonts-6.1.1\net\sf\jasperreports\fonts\dejavu
3 修改fonts.xml
打开C:\jasperreports-fonts-6.1.1\net\sf\jasperreports\fonts目录下的fonts.xml 增加如下配置:
1 <fontFamily name="黑体"> 2 <normal>net/sf/jasperreports/fonts/dejavu/simhei.ttfnormal> 3 <bold>net/sf/jasperreports/fonts/dejavu/simhei.ttfbold> 4 <italic>net/sf/jasperreports/fonts/dejavu/simhei.ttfitalic> 5 <boldItalic>net/sf/jasperreports/fonts/dejavu/simhei.ttfboldItalic> 6 <pdfEncoding>Identity-HpdfEncoding> 7 <pdfEmbedded>truepdfEmbedded> 8 <exportFonts> 9 <export key="net.sf.jasperreports.html">'黑体', Arial, Helvetica, sans-serifexport> 10 <export key="net.sf.jasperreports.xhtml">'黑体', Arial, Helvetica, sans-serifexport> 11 exportFonts> 12 fontFamily>
4 将目录打包成jar
有两种打包方式:
4.1 Maven方式
提前安装并配置好maven,进入到如下目录:
C:\jasperreports-fonts-6.1.1,(需要提前准备好pom.xml)然后执行如下命令:
mvn package
执行完毕后,会在当前目录下看到一个target目录,点击进入;
4.2 jar命令方式
进入C:\jasperreports-fonts-6.1.1目录,然后执行
c:\jasperreports-fonts-6.1.1>jar cvf jasperreports-fonts-6.1.1.jar .
最后的点代表所有文件
5 将jasperreports-fonts-6.1.1.jar安装到本地maven仓库
mvn install:install-file -DgroupId=net.sf.jasperreports -DartifactId=jasperreports-fonts -Dversion=6.1.1 -Dpackaging=jar -Dfile=c:\jasperreports-fonts-6.1.1.jar
6 在Jasperreport studio中增加字体
可以用上面生成的jar包,替换studio中的jar包,Windows默认安装后,jasperreport-fonts.jar包的位置是:
C:\Program Files (x86)\TIBCO\Jaspersoft Studio-6.5.1.final\configuration\org.eclipse.osgi\55\0\.cp\lib
7、项目的pom.xml使用本地maven仓库中的c:\jasperreports-fonts-6.1.1.jar
net.sf.jasperreports jasperreports 6.6.0 com.lowagie itext net.sf.jasperreports jasperreports-fonts net.sf.jasperreports jasperreports-fonts 6.1.1 com.lowagie itext 2.1.7 com.itextpdf itext-pdfa 5.5.0
8 报表中使用自定义字体
font中使用的黑体就是simhei.ttf代表的系统字体