JasperReport导出中文变白的问题楼主也遇到过,网上百度了很多方法,也去jasper官方网站查过,都没解决,后来自己整了一个方法,不管是JasperStudio直接导出还是java代码导出,都能解决这个问题,现在贴出来给大家分享一下。

        首先是JasperStudio导出pdf中文空白的问题,JasperStudio本身好像就没有中文字体,虽然statictext字体类型里面可以选中文,但实际上直接在JasperStudio里面导出为pdf的时候就会发现pdf文件里面的中文都消失了,这个百度了一下,自己装一个字体就能解决,我装的是simfang(仿宋)。

        这个很简单,下载完成后在JasperStudio里面导入就行,如下图所示

 

 JasperReport导出PDF中文缺失问题

        需要注意的是 PDF Encoding :Identity-H,这个一定要选对,我的理解是 中文字体实际上都是unicode,所以直接选择unicode编码,horizontal代表横着写,还有一个vertical竖着写,大家可以试试。

        引入完成就能直接在字体栏上选择simfang了,这时候JasperStudio导出就不会中文字白屏了,现在来解决java代码白屏的问题。

        java里面我引入了2个依赖,一个导出,一个字体。

<dependency>
  <groupId>net.sf.jasperreports</groupId>
  <artifactId>jasperreports</artifactId>
  <version>6.5.0</version>
</dependency>

<dependency>
    <groupd>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.9.0</version>
</dependency>
 

关键是下面的字体,里面的内容特别少,我们之前设置的simfang肯定也不在里面,这就导致java导出的时候,引用的jrxml找不到字体,中文还是白屏,那这个怎么办呢,我的想法是,改jar包

查看jasperreports-fonts这个jar,里面的properties定义了font的解析factory和fonts.xml位置,如下图

JasperReport导出PDF中文缺失问题

再看fonts.xml里面的内容

JasperReport导出PDF中文缺失问题

这里面的fontFamily,就是之前在JasperStudio里面新增simfang字体时的xml解析内容

name就是simfang,normal=普通字体,bold=加粗,italic=斜体,bolditalic=加粗斜体,里面的net/sf/jasperreports/fonts/dejavu/DejaVuSans.tff就是字体的位置,那么现在,我们只需要新增一个simfang的family就行了,如下:

    <fontFamily name="simfang">
        <normal>net/sf/jasperreports/fonts/dejavu/simfang.ttf</normal>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
        <exportFonts>
            <export key="net.sf.jasperreports.html">'simfang, simfang</export>
        </exportFonts>
    </fontFamily>

这里我没有配加粗,斜体啥的,因为我没用到,大家用到的话可以自己网上找了配上去,字体最后也要放到你配置的位置,我选择了和dejavu放到一起,如下图

JasperReport导出PDF中文缺失问题

新增完成,直接打包,PS:修改内容有2,fonts.xml和simfang.tff

这样的话新增后的jasperreports-fonts-6.9.0-sources.jar就完成了

替换掉本地maven仓库原来的jar,对自己的项目重新mvn - clean & install,问题解决!

总结:这样做的好处在于扩展性,对于任何想要新增的字体,都可以用这种方式来增加,还算方便吧。

最后附上tff和jar的下载地址:

https://download.csdn.net/download/weixin_40103859/12299631

https://download.csdn.net/download/weixin_40103859/12299874

建议大家自己试一下,非常方便

相关文章:

  • 2021-05-19
  • 2022-12-23
  • 2021-04-01
  • 2021-07-25
  • 2022-12-23
  • 2021-12-30
  • 2022-01-08
  • 2021-10-07
猜你喜欢
  • 2021-11-05
  • 2021-10-07
  • 2021-06-30
  • 2021-12-16
  • 2021-11-29
  • 2021-07-18
  • 2022-12-23
相关资源
相似解决方案