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然后解壓,

 

 

 

 

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.ttf</normal>
 3         <bold>net/sf/jasperreports/fonts/dejavu/simhei.ttf</bold>
 4         <italic>net/sf/jasperreports/fonts/dejavu/simhei.ttf</italic>
 5         <boldItalic>net/sf/jasperreports/fonts/dejavu/simhei.ttf</boldItalic>
 6         <pdfEncoding>Identity-H</pdfEncoding>
 7         <pdfEmbedded>true</pdfEmbedded>
 8         <exportFonts>
 9             <export key="net.sf.jasperreports.html">'黑體', Arial, Helvetica, sans-serif</export>
10             <export key="net.sf.jasperreports.xhtml">'黑體', Arial, Helvetica, sans-serif</export>
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

<!-- jasperreports-->
<dependency>
  <groupId>net.sf.jasperreports</groupId>
  <artifactId>jasperreports</artifactId>
  <version>6.6.0</version>
  <exclusions>
    <exclusion>
      <groupId>com.lowagie</groupId>
      <artifactId>itext</artifactId>
    </exclusion>
    <!--?可選?-->
    <exclusion>
      <groupId>net.sf.jasperreports</groupId>
      <artifactId>jasperreports-fonts</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>net.sf.jasperreports</groupId>
  <artifactId>jasperreports-fonts</artifactId>
  <version>6.1.1</version>
</dependency>
<dependency>
  <groupId>com.lowagie</groupId>
  <artifactId>itext</artifactId>
  <version>2.1.7</version>
</dependency>

<dependency>
  <groupId>com.itextpdf</groupId>
  <artifactId>itext-pdfa</artifactId>
  <version>5.5.0</version>
</dependency>

 8 報表中使用自定義字體

 

 font中使用的黑體就是simhei.ttf代表的系統字體


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM