文章目录
1. 基本使用
1.1 模板制作
1.1.1 新建报表
打开Jaspersoft Studio ,新建一个project, 步骤: File -> New -> Project-> JasperReportsProject
1.1.2 创建模板
新建一个Jasper Report模板,在 Stidio的左下方Project Explorer 找到刚才新建的Project (我这里新建的是DemoReport),步骤:项目右键 -> New -> Jasper Report
1.1.3 选择纸张
选择 Blank A4 (A4纸大小的模板),然后 Next 命名为test01.jrxml.
1.1.4 Band的介绍
如图所示,报表模板被垂直的分层,每一个部分都是一个Band,每一个Band的特点不同:
- Title(标题):只在整个报表的第一页的最上端显示。只在第一页显示,其他页面均不显示。
- Page Header(页头):在整个报表中每一页都会显示。在第一页中,出现的位置在 Title Band的下面。在除了第一页的其他页面中Page Header 的内容均在页面的最上端显示。
- Page Footer(页脚):在整个报表中每一页都会显示。显示在页面的最下端。一般用来显示页码。
- Detail 1(详细):报表内容,每一页都会显示。
- Column Header(列头):Detail中打印的是一张表的话,这Column Header就是表中列的列头。
- Column Footer(列脚):Detail中打印的是一张表的话,这Column Footer就是表中列的列脚。
- Summary(统计):表格的合计段,出现在整个报表的最后一页中,在Detail 1 Band后面。主要是用来做报表的合计显示。
1.2 编译模板
右键单机模板文件 -> compile Report 对模板进行编译,生成.jasper文件
2. 快速入门
需求
2.1 环境准备
2.1.1 导入依赖
<!--JsperReport-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.17.0</version>
</dependency>
<dependency>
<groupId>org.olap4j</groupId>
<artifactId>olap4j</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>iText</artifactId>
<version>2.1.3</version>
</dependency>
2.1.2 准备中文字体资源文件
jasperReports本身对中文的支持不够好,所以如果涉及到中文,需要自己准备中文的资源,现在已“华文宋体为例”
把图中的文件夹和properties文件直接拷贝到项目的resources文件夹下
百度云: https://pan.baidu.com/s/1b5YN1ly_IkHMWk0nxkf1JQ
提取码:szy1
2.2 使用Jaspersoft Studio制作一个简单的模板
2.2.1. 创建新模板,删除不需要的Band
2.2.2. 画边框和线
2.2.3. 添加几个静态的文本
2.2.4. 添加变量
在右下角修改变量名称
2.2.5 使用变量
2.2.6. 有中文的设置字体为华文宋体
2.2.7. 保存后编辑
2.3 复制编译后的文件
把Blank_A4.jasper文件放到磁盘的某个位置,比如我直接放到D盘下
2.4 测试代码
@Test
public void test() throws Exception {
//模板文件位置
String filePath ="d:\\Blank_A4.jasper";
//文件输出流
FileInputStream inputStream = new FileInputStream(filePath);
//设置参数 参数的key = 模板中使用的parameters参数的name
Map params = new HashMap();
params.put("name","张三");
params.put("phone","123456");
//将JasperPrint已PDF的形式输出
JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, params, new JREmptyDataSource());
//导出
JasperExportManager.exportReportToPdfStream(jasperPrint,new FileOutputStream("d:\\test01.pdf"));
}