iReport(模版) 与Jasper(数据填充)生成pdf文档

2018-06-18 02:22:50来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  报表模板生成软件:iReport 、 润乾、水晶。 

一、Jaspersoft iReport Desiginer 5.60 的使用

  1、软件jar包的下载地址与配置

  百度云盘下载链接: https://pan.baidu.com/s/1Ln9ewKMhYuau1bG9EgdUNQ  密码:cspl

  此软件最高仅支持1.7版本JDK,如果是1.8版本JDK,需要安装1.7以下的JDK,然后修改配置文件

  配置文件位置 : 安装目录\iReport-5.6.0\etc\ireport.conf,增加以下配置

jdkhome="C:\Program Files\Java\jdk1.7.0_80"

  2、创建模版

如果需要删除不需要的区域,右键选中该区域,然后选择Delete Band

以下三个区域为必须

如需添加文本控件,选择下图中的Static Text

如果控件中有中文,需要添加支持中文的iTextAsainJAR,按照下图所示进行配置

 

指定字体和属性设置,所有使用中文的控件,都必须按照下图所示进行配置.

创建数据源,如果连接Oracle数据库,需要手动指定数据库驱动,配置方式请参考上面配置iTextAsainJAR包的步骤.

指定SQL语句

Fields中拖拽需要的数据到模版中Detail区域

此时可以用鼠标拖动控件到合适的区域,如果需要修改对应的表头,可以直接在Page Header区域进行修改,如下图所示

如果需要添加动态参数,右键单击 Parameter进行添加

修改Parameterkey

修改之后,拖动到合适的区域

至此,版创建成功

如需预览,点击预览按钮即可

二、 使用Jasper生成PDF

1、导入依赖

 1 ??<!-- itext -->
 2 ??<dependency>
 3   ???<groupId>com.lowagie</groupId>
 4 ???  <artifactId>itext</artifactId>
 5   ???<version>2.1.7</version>
 6 ??</dependency>
 7 ??<dependency>
 8 ???  <groupId>com.itextpdf</groupId>
 9   ???<artifactId>itext-asian</artifactId>
10   ???<version>5.2.0</version>
11 ??</dependency>
12  
13 ??<!-- groovy -->
14 ??<dependency>
15   ???<groupId>org.codehaus.groovy</groupId>
16   ???<artifactId>groovy-all</artifactId>
17 ???  <version>2.2.0</version>
18 ??</dependency>
19  
20 ??<!-- jasperreport -->
21 ??<dependency>
22 ???  <groupId>net.sf.jasperreports</groupId>
23 ???  <artifactId>jasperreports</artifactId>
24 ???  <version>5.2.0</version>
25   ???<exclusions>
26 ????    <exclusion>
27       ?????<groupId>com.lowagie</groupId>
28 ?????      <artifactId>itext</artifactId>
29 ????    </exclusion>
30 ???  </exclusions>
31 ??</dependency>

拷贝iReport设计好的模版到工程中

2、前台代码

增加按钮
{
    ??id : 'button-export',
??    text : '导出PDF',
??    iconCls : 'icon-undo',
??    handler : doExportPDF
?}
绑定按钮点击事件
?function doExportPDF() {
    ??window.location.href = "../../areaAction_exportPDF.action"
?}

3、java代码

实现Action
 1 @Autowired
 2    private DataSource dataSource;
 3  
 4    @Action("areaAction_exportPDF")
 5    public String exportPDF() throws Exception {
 6  
 7        // 读取 jrxml 文件
 8        String jrxml = ServletActionContext.getServletContext()
 9                .getRealPath("/jasper/area.jrxml");
10        // 准备需要数据
11        Map<String, Object> parameters = new HashMap<String, Object>();
12        parameters.put("company", "黑马程序员");
13        // 准备需要数据
14        JasperReport report = JasperCompileManager.compileReport(jrxml);
15        JasperPrint jasperPrint = JasperFillManager.fillReport(report,
16                parameters, dataSource.getConnection());
17  
18        HttpServletResponse response = ServletActionContext.getResponse();
19        OutputStream ouputStream = response.getOutputStream();
20        // 设置相应参数,以附件形式保存PDF
21        response.setContentType("application/pdf");
22        response.setCharacterEncoding("UTF-8");
23        response.setHeader("Content-Disposition",
24                "attachment; filename=" + FileDownloadUtils
25                        .encodeDownloadFilename("工作单.pdf", ServletActionContext
26                                .getRequest().getHeader("user-agent")));
27        // 使用JRPdfExproter导出器导出pdf
28        JRPdfExporter exporter = new JRPdfExporter();
29        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
30        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
31        exporter.exportReport();// 导出
32        ouputStream.close();// 关闭流
33  
34        return NONE;
35    }
4、解决字体无法加载的异常
将下载地址中的iTextAsian.jar部署到Maven本地仓库,命令 :
  mvn install:install-file -DgroupId=com.xxxxx -DartifactId=iTextAsain -Dversion=10.2.0.2.0 -Dpackaging=jar -Dfile=路径
将pom文件中的坐标替换
原坐标
??<dependency>
  ???<groupId>com.itextpdf</groupId>
???  <artifactId>itext-asian</artifactId>
???  <version>5.2.0</version>
??</dependency>
新坐标,该坐标请根据自己本地仓库的实际情况进行修改
??<dependency>
???  <groupId>com.alpha</groupId>
???  <artifactId>itextasain</artifactId>
???  <version>10.2.0.2.0</version>
??</dependency>

三、效果

1、网页端

2、生成的pdf文件:

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:注解就这么简单

下一篇:【Java】0X001 配置开发环境,JDK、CLASSPATH等