SpringMVC与iReport整合开发时的PDF中文显示处理

前言

  鉴于有不少网友问到《SpringMVC与iReport(JasperReports) 5.6整合开发实例》这篇技术博客中,虽可以输出PDF格式的报表,但报表内容中若包含中文汉字,则无法正常显示。的确,整合开发实例中涉及到的PDF格式报表是不支持中文显示的,因为我的初衷是让大家熟悉SpringMVC与iReport的整合过程,并起到一个抛砖引玉的作用,所以PDF报表能否显示中文汉字压根没在考虑范围之内。

  既然现在有不少网友遇到了这样的问题,刚好今天稍微有些空闲,就PDF如何显示中文的问题做下说明。

一、特别说明:

  开始本示例之前,有必要先阅读我先前发布的《SpringMVC与iReport(JasperReports) 5.6整合开发实例》这篇博文,只有熟悉了SpringMVC与iReport的整合基础之后,才能更容易上手本示例教程。

  开始之前,先来预览下最终的报表效果:

  

二、开发环境

  • 操作系统: Windows 7 x64
  • JDK: JDK 1.7.0_79 x64
  • 开发IDE: Eclipse Luna Service Release 2 (4.4.2) x64
  • Maven: Apache Maven 3.2.3
  • iReport: Jaspersoft iReport Designer 5.6.0

三、添加PDF中文显示依赖包itextasian

  PDF中文显示需要itext和itextasian这两个jar文件的支持,尤其是itextasian,PDF报表能否显示中文就靠它了。很多网友肯定都知道这一点,但为什么还是不能正确显示中文呢?原因有二:要么itextasian这个包有问题,要么报表模板设计有问题。

  其实这两个包在iReport的安装目录下也有,他们位于:${iReport安装根目录}\ireport\modules\ext下:

  

  另外一点需要注意的是,我们的项目是使用Maven来管理Jar包依赖的,因此需要将上述两个Jar包导入到Maven本地库中,然后在项目POM文件中添加依赖。因此我已经写好了批处理,双击对应的bat批处理脚本即可将上述jar包导入到Maven本地库中(位于本项目的跟目录下)。

  

  然后在项目POM文件中添加itextasian依赖:

<!-- iReport PDF中文支持 -->  
<dependency>  
    <groupId>com.lowagie</groupId>  
    <artifactId>itextasian</artifactId>  
    <version>2.1.7.js2</version>  
</dependency> 

四、报表模板设计

  1、在报表模板中添加一个“Style”,暂且命名为“zh_CN”。

  

  2、设置样式“zh_CN”的<Pdf Font name>和<Pdf Encoding>两项参数:

  

  3、指定显示字段使用样式“zh_CN”。

  

  当然也可以不使用“Style”的方式,而是为每个字段都指定<Pdf Font name>和<Pdf Encoding>这两项参数,不过这样会很繁琐。记得保存、编译模板文件。

五、编写Controller方法

    /** 
     * 返回iReport报表视图,支持PDF显示中文 
     * @param model 
     * @return 
     */  
    @RequestMapping(value = "/reportChs", method = RequestMethod.GET)  
    public String reportChs(Model model) {  
        // 报表数据源  
        JRDataSource jrDataSource = new JRBeanCollectionDataSource(JavaBeanPerson.getListChs());  
                  
        // 动态指定报表模板url  
        model.addAttribute("url", "/WEB-INF/jasper/MvcIReportChsExample.jasper");  
        model.addAttribute("format", "pdf"); // 报表格式  
        model.addAttribute("jrMainDataSource", jrDataSource);  
          
        return "iReportView";  
    }  

  发布项目,通过链接:http://localhost:8080/mvc-ireport-chs/reportChs访问生成的PDF报表。

六、Demo源码下载

  项目源码: mvc-ireport-chs.zip
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值