pdf模板工具JaspersoftStudio,JasperReport

Jaspersoft Studio是一款基于Eclipse的报表设计工具,支持复杂布局的创建,包括图表、图像、子报表等,适用于多种数据源。本文详细介绍其安装配置、面板功能、基本使用流程及如何与Spring Boot工程整合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                 pdf模板工具JaspersoftStudio,JasperReport

概述

Jaspersoft    StudioJasperReports库和JasperReports服务器的基于Eclipse的报告设计器;    它可以作为Eclipse插件或作为独立的应用程序使用。Jaspersoft       Studio允许您创建包含图表,图像,子报表,交叉表等的复杂布局。您可以通过JDBCTableModelsJavaBeansXMLHibernate,大数据(如Hive),CSVXML   /    A以及自定义来源等各种来源访问数据,然后将报告发布为PDFRTFXMLXLSCSVHTMLXHTML,文本,DOCX

OpenOffice

Jaspersoft Studio 是一个可视化的报表设计工具,使用该软件可以方便地对报表进行可视化的设计,设计结果为格式.jrxml XML 文件,并且可以把.jrxml 文件编译成.jasper 格式文件方便 JasperReport 报表引擎解析、显示。

安装配置

JasperReport官网下载 Download Jaspersoft Business Intelligence Suite | Jaspersoft Community

下载 Library Jar包(传统导入jar包工程需下载)和模板设计器Jaspersoft studio。并安装Jaspersoft  studio,安装的过程比较简单,一直下一步直至安装成功即可。

面板介绍

Report editing area (主编辑区域)中,您直观地通过拖动,定位,对齐和通过 Designer palette(设计器调色板)对报表元素调整大小。JasperSoft Studio 有一个多标签编辑器,Design,Source Preview

Design tab:当你打开一个报告文件,它允许您以图形方式创建报表选中Source tab: 包含用于报表的 JRXML 源代码。

Preview tab: 允许在选择数据源和输出格式后,运行报表预览。

Repository Explorer view:包含 JasperServer 生成的连接和可用的数据适配器列表

Project Explorer view:包含 JasperReports 的工程项目清单

Outline view:在大纲视图中显示了一个树的形式的方式报告的完整结构。

Properties view:通常是任何基于 Eclipse 的产品/插件的基础之一。它通常被填充与实际所选元素的属性的信息。这就是这样,当你从主设计区域(即:一个文本字段)选择一个报表元素或从大纲,视图显示了它的  信息。其中一些属性可以是只读的,但大部分都是可编辑的,对其进行修改,通常会通知更改绘制的元素

(如:元素的宽度或高度)。

Problems view:显示的问题和错误,例如可以阻断报告的正确的编译。

Report state summary 提供了有关在报表编译/填充/执行统计用户有用的信息。错误会显示在这里

基本使用

模板制作

1)打开Jaspersoft Studio ,新建一个project, 步骤: File -> New -> Project-> JasperReports Project

2)新建一个Jasper Report模板,在 Stidio的左下方Project Explorer 找到刚才新建的Project (我这里新建的是DemoReport),步骤:项目右键 -> New -> Jasper Report

3)选择 Blank A4 (A4纸大小的模板),然后 Next 命名为DemoReport1.jrxml.

如图所示,报表模板被垂直的分层,每一个部分都是一个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后面。主要是用来做报表的合计显示。

编译模板

右键单机模板文件 -> compile Report 对模板进行编译,生成.jasper文件

整合工程

1)新建SpringBoot工程引入坐标

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.5.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.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
server: port: 8181
spring:
application:
name: jasper-demo #指定服务名resources:
static-locations: classpath:/templates/ datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ihrm?useUnicode=true&characterEncoding=utf8 username: root
password: 111111

3)创建启动类

@SpringBootApplication(scanBasePackages = "cn.itcast") public class JasperApplication {
public static void main(String[] args) { SpringApplication.run(JasperApplication.class, args);
}
}

4)导入生成的.jasper文件

5)创建测试controller

@RestController
public class JasperController {

@GetMapping("/testJasper")
public void createHtml(HttpServletResponse response, HttpServletRequest request)throws Exception{
//引入jasper文件。由JRXML模板编译生成的二进制文件,用于代码填充数据
Resource resource = new ClassPathResource("templates/test01.jasper");
//加载jasper文件创建inputStream
FileInputStream isRef = new FileInputStream(resource.getFile()); ServletOutputStream sosRef = response.getOutputStream();
try {
//创建JasperPrint对象
JasperPrint jasperPrint = JasperFillManager.fillReport(isRef, new HashMap<>
(),new JREmptyDataSource());
//写入pdf数据JasperExportManager.exportReportToPdfStream(jasperPrint,sosRef);
} finally {
sosRef.flush(); sosRef.close();
}
}
}

中文处理

1)设计阶段需要指定中文样式

2)通过手动指定中文字体的形式解决中文不现实添加properties文件:[解决中文乱码]


net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperrepor ts.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.lobstertwo=stsong/fonts.xml

指定中文配置文件fonts.xml  [解决中文乱码]

<?xml version="1.0" encoding="UTF-8"?>


<fontFamilies>


<!--<fontFamily name="Lobster Two">-->
<!--<normal>lobstertwo/LobsterTwo-Regular.otf</normal>-->
<!--<bold>lobstertwo/LobsterTwo-Bold.otf</bold>-->
<!--<italic>lobstertwo/LobsterTwo-Italic.otf</italic>-->
<!--<boldItalic>lobstertwo/LobsterTwo-BoldItalic.otf</boldItalic>-->
<!--<pdfEncoding>Identity-H</pdfEncoding>-->
<!--<pdfEmbedded>true</pdfEmbedded>-->
<!--<!–-->
<!--<exportFonts>-->
<!--<export key="net.sf.jasperreports.html">'Lobster Two', 'Times New Roman', Times, serif</export>-->
<!--</exportFonts>-->
<!--–>-->
<!--</fontFamily>-->
<fontFamily name="华文宋体">
<normal>stsong/stsong.TTF</normal>
<bold>stsong/stsong.TTF</bold>
<italic>stsong/stsong.TTF</italic>
<boldItalic>stsong/stsong.TTF</boldItalic>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
<exportFonts>
<export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans- serif</export>
<export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-
serif</export>
</exportFonts>
<!--
<locales>
<locale>en_US</locale>
<locale>de_DE</locale>
</locales>
-->
</fontFamily>
</fontFamilies>

引入字体库stsong.TTF  [解决中文乱码]

 解决乱码文件下载:

链接:https://pan.baidu.com/s/1FVjCkL4I8jh4I5pCNvLWqQ 
提取码:j7mw 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值