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数据源方式填充数据

【声明】

  1. 该文章所用素材来自于网络;
  2. 该文章仅供学习使用;
  3. 详细请参考该博主–> 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. 制作报表模板
  2. 模板编译
  3. 构造数据
  4. 填充数据
  5. 输出文件

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(项目工具)相关推荐

  1. C# 打印PDF文档的10种方法

    操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...

  2. icepdf java_icepdf 一款功能强大的PDF阅读、打印、注释工具,java实现,跨平台。 Develop 238万源代码下载- www.pudn.com...

    文件名称: icepdf下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 5553 KB 上传时间: 2013-10-10 下载次数: 1 详细说明:一款功能强大的 ...

  3. 还在为打印PDF文件发愁?文档开发工具Spire.PDF 6种方式帮你搞定!

    Spire.PDF(点击下载)是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight.Spire.PDF的PDF API拥有 ...

  4. Python练手项目:PDF小工具

    python对办公一族来说,是个提高办公效率的得力利器.熟练使用它,可以轻松完成很多繁杂的事情.它可以轻松地操作Word.Excel.PDF这种文档. 今天需要整理一份资料,需要把多个pdf合并为一个 ...

  5. Vue项目实现在线预览pdf,并且可以批量打印pdf

    最近遇到一个需求,就是要在页面上呈现pdf内容,并且还能用打印机批量打印pdf,最终效果如下: 当用户在列表页面,勾选中两条数据后,点击"打印表单"按钮之后,会跳到如下的预览页面: ...

  6. pdf模板工具JaspersoftStudio,JasperReport

    pdf模板工具JaspersoftStudio,JasperReport 概述 Jaspersoft    Studio是JasperReports库和JasperReports服务器的基于Eclip ...

  7. 付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具

    (扫码关注) PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印. ...

  8. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

    ## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...

  9. html旋转代码_付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具

    PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程 ...

最新文章

  1. 【C++自我精讲】基础系列二 const
  2. Halcon算子翻译——dev_set_line_width
  3. 机房运维很枯燥?来看看中国银行数据中心基础设施可视化运维管理
  4. 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
  5. mysql 打包表在phpmyadmin提示正在使用中..
  6. 安装 Window 10 for Linux 子系统教程(WSL)
  7. java中的装箱及拆箱
  8. 晚上大龙哥带来了一本vb教程,由于好奇看了下
  9. QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
  10. 2022年证券大宗交易研究报告
  11. 用地图说话:在商业分析与演示中运用Excel数据地图(全彩)
  12. 实时数据库与关系数据库的对比分析
  13. 数据分析:逻辑树分析模型
  14. linux中cpu使用率命令,LINUX下查看CPU使用率的命令
  15. 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?
  16. VMware Workstation15.1.0安装Windows 1903虚拟机
  17. 数理统计(python)
  18. C++基础之运算符重载
  19. ise17.4 版本的安装
  20. signature=2abb9e363faa3aa7323b2a3393a36011,Winhex软件的使用

热门文章

  1. composer安装phpqrcode
  2. Unity界面入门教程
  3. 游戏服务器心跳包的作用
  4. [2010/09/30]爱护牙齿Take Care of Your Teeth
  5. 注册Live.com信箱--第四波 Live信箱注册又现漏洞
  6. 土方量测量比以前快3倍,而且精度惊人
  7. flash转为html5工具
  8. jQuery介绍 jQuery基本使用 jQuery选择器 jQuery样式操作 jQuery动画效果
  9. 一文看懂内存池原理及创建(C++实现)
  10. 记录一个关于上行交换机出现异常情况