现在项目上要求实现套打,结果公司里有个人建议用JaperReport进行实现,就进入这个东西的坑中。好歹经过挣扎现在已经脱离此坑中。现在我也是仅能实现读取数据库数据转成pdf进行展示,包括中文的展示。于是记录下整个过程。

1.下载 安装 Jaspersoft Studio

下载地址:https://community.jaspersoft.com/community-download

5c3c980c0001067108210709.jpg

我下载的就是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相关推荐

  1. SpringBoot(十二)_springboot整合PageHelper

    我之所以会发现这个PageHelper这个东东 是因为公司在使用 ,刚开始我也没太注意这个插件,感觉不就是个分页插件吗?也就那样,直到一天,我在网上找了个代码生成器,用来构建代码,因为它是针对mysq ...

  2. springboot(十六) 2.0变化

    目录 新版本特性 基于java8, 支持java9 响应式编程 HTTP/2支持 对Kotlin支持 全新的执行器架构 支持Quartz Security Metrics 监控方面 数据方面 Thym ...

  3. Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!

    之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.接下来要说一说Mybatis 的分页 ...

  4. springboot update数据_SpringBoot整合Mybatis+Druid+数据库(注解版)

    运行展示 正题 Spring boot :2.1.5RELEASE :数据库(Mysql.Oracle):Mybatis:阿里云的连接池 : Druid : 步骤 1.POM依赖 <!-- My ...

  5. springboot(十六):使用Jenkins部署Spring Boot

    jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第 ...

  6. springboot 多数据源_SpringBoot整合多数据源的巨坑一

    导读 本篇文章接上篇SpringBoot整合多数据源,你会了吗?,前面文章最后留了几个问题供大家思考,今天一一揭晓. 配置如何优化 上文整合的过程中的还顺带整合Mybatis和TransactionM ...

  7. SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)

    为什么使用定时? 日常工作中,经常会用到定时任务,比如各种统计,并不要求实时性.此时可以通过提前设置定时任务先把数据跑出来,后续处理起来更方便. 本篇文章主要介绍 springboot内置定时任务. ...

  8. SpringBoot(十五)_springboot实现预览pdf

    最近,项目上要做个打印的东西,还要预览.我想就直接生成pdf预览,然后用户选择打印 于是,昨天找了找资料.一般用itext 进行转pdf.于是我就用springboot试了试,代码比较简单,现在只是简 ...

  9. 我要学ASP.NET MVC 3.0(十六): MVC 3.0 实例系列之表格数据的分页

    概述 上节我们学习了如何在MVC 3应用程序中实现一个简单表格并在表格之中加上了排序的表头,使我们的表格在使用起了更加人性化,这些都是使用了MVC 3.0的相关特性来完成的. 我们在程序中添加了一个辅 ...

  10. springboot整个缓存_springboot整合ehcache缓存

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. gtest简介及简单使用
  2. Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
  3. /lib64/libc.so.6 is not a symbolic link 解决方法
  4. dblinq mysql_DBLinq mysql辅助脚本
  5. pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
  6. 深入理解Java虚拟机:垃圾收集器与内存分配策略
  7. api-ms-win-crt-runtimel1-1-0.dll缺失的终极解决方案
  8. java 符_java运算符
  9. 【C语言数据结构】数组
  10. java导入shp数据并解析
  11. 中国传统节日端午节网页HTML代码 学生网页课程设计期末作业下载 春节大学生网页设计制作成品下载 DW春节节日网页作业代码下载
  12. Word VBA:查找隐藏字符
  13. 德律aoi程式制作_精典德律AOI检测程式制作手册(全).ppt
  14. 一文读懂自然语言处理NLP
  15. Regin恶意软件:何以潜伏如此久?
  16. 完美实现苹果轮廓检测opencv-python检测图像轮廓处理
  17. 干货|最全焊接不良汇总,你知道如何避免吗?
  18. 项目一:CRM(客户关系管理系统)--9---自定制action
  19. URLEncode原理
  20. rocksdb配置解析

热门文章

  1. ubuntu 更新源 或者 apt-get install 出错404 not found ,Failed to fetch
  2. MySql多对多关系中外键的应用
  3. .NET中的异常处理机制(一)
  4. 十个必备的学习iOS开发的网站
  5. 感觉非常经典的一片博文(关于缓存)
  6. Java RMI之介绍
  7. Extjs study
  8. MS-SQL数据类型详解
  9. 22.分布式系统基础设施
  10. 46. 避免 CSS 表达式(7)