JasperReports ——打印PDF(项目工具)
JasperReports ——打印PDF(项目工具)
- 一、介绍
- 1.1 JasperReports 原理
- 1.2 开发流程
- 1.3 模板设计器 Jaspersoft Studio
- 1.4 设计好模板就可以进行填充数据
- 1.4.0 添加依赖
- 1.4.1 设计 jrxml 模板文件
- 1.4.2 JDBC数据源方式填充数据
- 1.4.3 JavaBean数据源方式填充数据
【声明】
- 该文章所用素材来自于网络;
- 该文章仅供学习使用;
- 详细请参考该博主–> strive4free
一、介绍
1.1 JasperReports 原理
JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。一般情况下,JasperReports会结合Jaspersoft Studio(模板设计器)使用导出PDF报表。
[备注:图片来自传智播客]
模块名称 | 解释 |
---|---|
JRXML | 报表填充模板,本质是一个xml文件 |
Jasper | 由JRXML模板编译成的二进制文件,用于代码填充数据 |
Jrprint | 当用数据填充完Jasper后生成的对象,用于输出报表 |
Exporter | 报表输出的管理类,可以指定要输出的报表为何种格式 |
PDF/HTML/XML | 报表形式 |
1.2 开发流程
使用JasperReports导出pdf报表,开发流程如下:
- 制作报表模板
- 模板编译
- 构造数据
- 填充数据
- 输出文件
1.3 模板设计器 Jaspersoft Studio
Jaspersoft Studio是一个图形化的报表设计工具,可以非常方便的设计出PDF报表模板文件(其实就是一个xml文件),再结合JasperReports使用,就可以渲染出PDF文件。
1.4 设计好模板就可以进行填充数据
1.4.0 添加依赖
<!-- jasperreports依赖(导出PDF) -->
<dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.10.0</version><exclusions><!-- 内置依赖的itext在中央仓库没有,需要排除 --><exclusion><groupId>com.lowagie</groupId><artifactId>itext</artifactId></exclusion></exclusions>
</dependency>
<!--mysql 的依赖-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version>
</dependency>
<!--junit4 的依赖-->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope>
</dependency>
1.4.1 设计 jrxml 模板文件
[备注:图片来自传智播客]
[备注:图片来自传智播客]
[备注:图片来自传智播客]
1.4.2 JDBC数据源方式填充数据
将设计好的demo1.jrxml文件复制到当前工程的resources目录下;编写单元测试;
@Test
public void testReport_JDBC() throws Exception{Class.forName("com.mysql.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/kanganhealth","root", "root");
//jrxml模板文件路径(事先设计好的)String jrxmlPath = "D:\\ideaProjects\\projects111\\jasperreports_test\\src\\main\\resources\\demo1.jrxml";//由JRXML模板编译成的二进制文件,用于代码填充数据(文件不存在时自动创建)String jasperPath = "D:\\ideaProjects\\projects111\\jasperreports_test\\src\\main\\resources\\demo1.jasper";
//编译模板JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);
//构造数据Map paramsMap = new HashMap();paramters.put("company","demo测试案例");
//填充数据---使用JDBC数据源方式填充JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath,paramsMap,connection);//输出文件String pdfPath = "D:\\test.pdf";JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);
}
输出效果:
[备注:图片来自传智播客]
1.4.3 JavaBean数据源方式填充数据
编写单元测试方法输出PDF文件
@Test
public void testReport_JavaBean() throws Exception{String jrxmlPath = "D:\\ideaProjects\\projects111\\jasperreports_test\\src\\main\\resources\\demo2.jrxml";String jasperPath = "D:\\ideaProjects\\projects111\\jasperreports_test\\src\\main\\resources\\demo2.jasper";
//编译模板JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);
//构造数据Map paramters = new HashMap();paramters.put("company","demo测试公司");
List<Map> list = new ArrayList();Map map1 = new HashMap();map1.put("tName","入职体检套餐");map1.put("tCode","RZTJ");map1.put("tAge","18-60");map1.put("tPrice","500");
Map map2 = new HashMap();map2.put("tName","阳光爸妈老年健康体检");map2.put("tCode","YGBM");map2.put("tAge","55-60");map2.put("tPrice","500");list.add(map1);list.add(map2);
//填充数据---使用JavaBean数据源方式填充JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath,paramters,new JRBeanCollectionDataSource(list));//输出文件String pdfPath = "D:\\test.pdf";JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);
}
测试效果
[备注:图片来自传智播客]
JasperReports ——打印PDF(项目工具)相关推荐
- C# 打印PDF文档的10种方法
操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...
- icepdf java_icepdf 一款功能强大的PDF阅读、打印、注释工具,java实现,跨平台。 Develop 238万源代码下载- www.pudn.com...
文件名称: icepdf下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 5553 KB 上传时间: 2013-10-10 下载次数: 1 详细说明:一款功能强大的 ...
- 还在为打印PDF文件发愁?文档开发工具Spire.PDF 6种方式帮你搞定!
Spire.PDF(点击下载)是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight.Spire.PDF的PDF API拥有 ...
- Python练手项目:PDF小工具
python对办公一族来说,是个提高办公效率的得力利器.熟练使用它,可以轻松完成很多繁杂的事情.它可以轻松地操作Word.Excel.PDF这种文档. 今天需要整理一份资料,需要把多个pdf合并为一个 ...
- Vue项目实现在线预览pdf,并且可以批量打印pdf
最近遇到一个需求,就是要在页面上呈现pdf内容,并且还能用打印机批量打印pdf,最终效果如下: 当用户在列表页面,勾选中两条数据后,点击"打印表单"按钮之后,会跳到如下的预览页面: ...
- pdf模板工具JaspersoftStudio,JasperReport
pdf模板工具JaspersoftStudio,JasperReport 概述 Jaspersoft Studio是JasperReports库和JasperReports服务器的基于Eclip ...
- 付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具
(扫码关注) PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印. ...
- java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo
## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...
- html旋转代码_付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具
PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程 ...
最新文章
- 【C++自我精讲】基础系列二 const
- Halcon算子翻译——dev_set_line_width
- 机房运维很枯燥?来看看中国银行数据中心基础设施可视化运维管理
- 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
- mysql 打包表在phpmyadmin提示正在使用中..
- 安装 Window 10 for Linux 子系统教程(WSL)
- java中的装箱及拆箱
- 晚上大龙哥带来了一本vb教程,由于好奇看了下
- QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
- 2022年证券大宗交易研究报告
- 用地图说话:在商业分析与演示中运用Excel数据地图(全彩)
- 实时数据库与关系数据库的对比分析
- 数据分析:逻辑树分析模型
- linux中cpu使用率命令,LINUX下查看CPU使用率的命令
- 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?
- VMware Workstation15.1.0安装Windows 1903虚拟机
- 数理统计(python)
- C++基础之运算符重载
- ise17.4 版本的安装
- signature=2abb9e363faa3aa7323b2a3393a36011,Winhex软件的使用