iReport(模版) 与Jasper(数据填充)生成pdf文档
2018-06-18 02:22:50来源:未知 阅读 ()
报表模板生成软件: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
如果控件中有中文,需要添加支持中文的iTextAsain的JAR包,按照下图所示进行配置
指定字体和属性设置,所有使用中文的控件,都必须按照下图所示进行配置.
创建数据源,如果连接Oracle数据库,需要手动指定数据库驱动,配置方式请参考上面配置iTextAsain的JAR包的步骤.
指定SQL语句
从Fields中拖拽需要的数据到模版中的Detail区域
此时可以用鼠标拖动控件到合适的区域,如果需要修改对应的表头,可以直接在Page Header区域进行修改,如下图所示
如果需要添加动态参数,右键单击 Parameter进行添加
修改Parameter的key
修改之后,拖动到合适的区域
至此,模版创建成功
如需预览,点击预览按钮即可
二、 使用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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- org.apache.jasper.JasperException: java.lang.NullPointer 2020-05-21
- ireport(1.2.7)的IllegalAccessError异常 2019-10-25
- Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模 2019-10-12
- Spring Boot (二):模版引擎 Thymeleaf 渲染 Web 页面 2019-09-23
- Java模版引擎之Freemarker 2019-08-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash