SpringBoot(十六)_springboot整合JasperReport6.6.0
现在项目上要求实现套打,结果公司里有个人建议用JaperReport进行实现,就进入这个东西的坑中。好歹经过挣扎现在已经脱离此坑中。现在我也是仅能实现读取数据库数据转成pdf进行展示,包括中文的展示。于是记录下整个过程。
1.下载 安装 Jaspersoft Studio
下载地址:https://community.jaspersoft.com/community-download
我下载的就是6.6.0这个版本,Jasper Report 分为专业版(收费)和社区版(免费),这里下载的社区版本。
2.设计模板
对这个模板设计我也不是很熟悉,这里我就不展开说明了。大家自行设计吧
2.1 导入并设置字体
这里需要注意一点就是,这个设计出的不显示中文,需要导入字体。
点击window->Preferences->jaspersoft Studio->font->add
设置完成后,点击Finish.
2.2 设计模板选择设置的myfont字体
查看jrxml文件后,设置后会多出font
标签
<font fontName="myfont" size="26" pdfFontName="" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/></textElement><text><![CDATA[三年二班学生信息]]></text>
2.3 导出myfont字体jar包
点击window->Preferences->jaspersoft Studio->font
选择myfont 点击export 导出。这里我保存为kevin.jar
2.4 将kevin.jar 安装到本地maven库
mvn install:install-file -Dfile=kevin.jar -DgroupId=com.kevin -DartifactId=myfont -Dversion=1.0.0 -Dpackaging=jar
至此,前期的准备工作都已经完成。
3.构建springboot项目
这里我使用的版本是 2.1.1.RELEASE
3.1 pom文件
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>com.kevin</groupId>
<artifactId>myfont</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
注意 ,我这里引用的是我设置的com.kevin.myfont
版本,个人根据自己步骤2.4设置的情况进行修改
3.2 application.yml
# Server settingsserver: port: 8080# SPRING PROFILESspring: http:encoding.charset: UTF-8encoding.enable: trueencoding.force: true datasource: url: jdbc:mysql://127.0.0.1:3306/kevin?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver
3.3 ReportController 代码
@RestControllerpublic class ReportController {
@Resource
private DataSource dataSource; /**
转换为pdf展示
@param reportName
@param parameters
@param response
@throws SQLException
@throws ClassNotFoundException
@throws JRException
@throws IOException
/
@GetMapping("/{reportName}") public void getReportByParam( @PathVariable(“reportName”) final String reportName, @RequestParam(required = false) Map<String, Object> parameters,
HttpServletResponse response) throws SQLException, ClassNotFoundException, JRException, IOException {
parameters = parameters == null ? new HashMap<>() : parameters; //获取文件流
ClassPathResource resource = new ClassPathResource(“jaspers” + File.separator + reportName + “.jasper”);
InputStream jasperStream = resource.getInputStream();
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection()); // JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
response.setContentType(“application/pdf”);
response.setHeader(“Content-Disposition”, “inline;”); final OutputStream outputStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
}
}
3.4 完整目录结构
4.运行效果
启动项目,运行http://localhost:8080/demo
完整代码
github:https://github.com/runzhenghengbin/SpringBoot
原文出处:https://www.cnblogs.com/zhenghengbin/p/10268495.html
作者:Kevin_zheng
SpringBoot(十六)_springboot整合JasperReport6.6.0相关推荐
- SpringBoot(十二)_springboot整合PageHelper
我之所以会发现这个PageHelper这个东东 是因为公司在使用 ,刚开始我也没太注意这个插件,感觉不就是个分页插件吗?也就那样,直到一天,我在网上找了个代码生成器,用来构建代码,因为它是针对mysq ...
- springboot(十六) 2.0变化
目录 新版本特性 基于java8, 支持java9 响应式编程 HTTP/2支持 对Kotlin支持 全新的执行器架构 支持Quartz Security Metrics 监控方面 数据方面 Thym ...
- Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!
之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.接下来要说一说Mybatis 的分页 ...
- springboot update数据_SpringBoot整合Mybatis+Druid+数据库(注解版)
运行展示 正题 Spring boot :2.1.5RELEASE :数据库(Mysql.Oracle):Mybatis:阿里云的连接池 : Druid : 步骤 1.POM依赖 <!-- My ...
- springboot(十六):使用Jenkins部署Spring Boot
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第 ...
- springboot 多数据源_SpringBoot整合多数据源的巨坑一
导读 本篇文章接上篇SpringBoot整合多数据源,你会了吗?,前面文章最后留了几个问题供大家思考,今天一一揭晓. 配置如何优化 上文整合的过程中的还顺带整合Mybatis和TransactionM ...
- SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)
为什么使用定时? 日常工作中,经常会用到定时任务,比如各种统计,并不要求实时性.此时可以通过提前设置定时任务先把数据跑出来,后续处理起来更方便. 本篇文章主要介绍 springboot内置定时任务. ...
- SpringBoot(十五)_springboot实现预览pdf
最近,项目上要做个打印的东西,还要预览.我想就直接生成pdf预览,然后用户选择打印 于是,昨天找了找资料.一般用itext 进行转pdf.于是我就用springboot试了试,代码比较简单,现在只是简 ...
- 我要学ASP.NET MVC 3.0(十六): MVC 3.0 实例系列之表格数据的分页
概述 上节我们学习了如何在MVC 3应用程序中实现一个简单表格并在表格之中加上了排序的表头,使我们的表格在使用起了更加人性化,这些都是使用了MVC 3.0的相关特性来完成的. 我们在程序中添加了一个辅 ...
- springboot整个缓存_springboot整合ehcache缓存
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- gtest简介及简单使用
- Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
- /lib64/libc.so.6 is not a symbolic link 解决方法
- dblinq mysql_DBLinq mysql辅助脚本
- pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
- 深入理解Java虚拟机:垃圾收集器与内存分配策略
- api-ms-win-crt-runtimel1-1-0.dll缺失的终极解决方案
- java 符_java运算符
- 【C语言数据结构】数组
- java导入shp数据并解析
- 中国传统节日端午节网页HTML代码 学生网页课程设计期末作业下载 春节大学生网页设计制作成品下载 DW春节节日网页作业代码下载
- Word VBA:查找隐藏字符
- 德律aoi程式制作_精典德律AOI检测程式制作手册(全).ppt
- 一文读懂自然语言处理NLP
- Regin恶意软件:何以潜伏如此久?
- 完美实现苹果轮廓检测opencv-python检测图像轮廓处理
- 干货|最全焊接不良汇总,你知道如何避免吗?
- 项目一:CRM(客户关系管理系统)--9---自定制action
- URLEncode原理
- rocksdb配置解析