JasperReport 6.x PDF中文显示问题

JasperReport从6.x版本开始,PDF的中文问题,不再依赖iTextAsian.jar包了。统一改用font字体。JasperrReport6中字体不支持中文,需要自己扩展。

扩展中文的步骤如下:

1    解压jasperreports-fonts-6.1.1.jar

将jasperreports-fonts-6.1.1.jar扩展名修改为rar然后解压,

 JasperReport 6.x PDF中文显示问题_第1张图片

 

 

 

2    将字体文件拷贝到fonts目录

目录如下:

C:\jasperreports-fonts-6.1.1\net\sf\jasperreports\fonts\dejavu

 JasperReport 6.x PDF中文显示问题_第2张图片

 

 

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

 JasperReport 6.x PDF中文显示问题_第3张图片

 

 

 

 JasperReport 6.x PDF中文显示问题_第4张图片

 

执行完毕后,会在当前目录下看到一个target目录,点击进入;

 JasperReport 6.x PDF中文显示问题_第5张图片

 

 

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 报表中使用自定义字体

JasperReport 6.x PDF中文显示问题_第6张图片

 

 font中使用的黑体就是simhei.ttf代表的系统字体

你可能感兴趣的:(JasperReport 6.x PDF中文显示问题)