下图是项目预览报表的效果

一.新建一个springboot项目.
1.pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>ireport</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ireport</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--核心包:jasperreports.jar-->
<!--start 后台传入数据读取报表-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.6.0</version>
</dependency>
<!--字体加粗的依赖包-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.9</version>
</dependency>
<!--生成pdf组件包:iText.jar -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.1</version>
</dependency>
<!--中文字体包:iTextAsian.jar-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- jasperreports条码包依赖,缺少的话打印包含条码的报告就报错 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>2.2</version>
</dependency>
<!--apache的commons组件包。-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
<!--end 后台传入数据读取报表-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.controller
package com.example.ireport.controller;
import com.example.ireport.model.UserInfo;
import com.example.ireport.services.IndexServices;
import com.example.ireport.util.JasperUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class IndexController {
@Autowired
private IndexServices indexServices;
@Resource
private JasperUtil jasperUtil;
@RequestMapping("/index")
public String index(Model model){
List<UserInfo> listUser = indexServices.getAllUser();
model.addAttribute("listUser",listUser);
return "/index";
}
/**
* pc端报告查询功能页面
*/
@RequestMapping("/readReport")
public void readReport( HttpServletResponse response , String userId ) throws Exception {
String fileName = "E:/ireport_file/report1.jasper";
InputStream in = getpcPdf(userId,fileName);
response.setContentType("application/pdf; charset=UTF-8");
OutputStream out = response.getOutputStream();
byte[] b = new byte[512];
if( in!=null ){
while ((in.read(b))!=-1) {
out.write(b);
}
}
out.flush();
in.close();
out.close();
}
public InputStream getpcPdf(String userId,String fileName) {
Map<String, Object> map = new HashMap<String, Object>();
//传到ireport报表的参数
map.put("user_id", userId);
return jasperUtil.PCexportPdfDir(fileName, map);
}
}
3.services
```
下图是项目预览报表的效果

一.新建一个springboot项目.
1.pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>ireport</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ireport</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--核心包:jasperreports.jar-->
<!--start 后台传入数据读取报表-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.6.0</version>
</dependency>
<!--字体加粗的依赖包-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.9</version>
</dependency>
<!--生成pdf组件包:iText.jar -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.1</version>
</dependency>
<!--中文字体包:iTextAsian.jar-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- jasperreports条码包依赖,缺少的话打印包含条码的报告就报错 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>2.2</version>
</dependency>
<!--apache的commons组件包。-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
<!--end 后台传入数据读取报表-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.controller
package com.example.ireport.controller;
import com.example.ireport.model.UserInfo;
import com.example.ireport.services.IndexServices;
import com.example.ireport.util.JasperUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class IndexController {
@Autowired
private IndexServices indexServices;
@Resource
private JasperUtil jasperUtil;
@RequestMapping("/index")
public String index(Model model){
List<UserInfo> listUser = indexServices.getAllUser();
model.addAttribute("listUser",listUser);
return "/index";
}
/**
* pc端报告查询功能页面
*/
@RequestMapping("/readReport")
public void readReport( HttpServletResponse response , String userId ) throws Exception {
String fileName = "E:/ireport_file/report1.jasper";
InputStream in = getpcPdf(userId,fileName);
response.setContentType("application/pdf; charset=UTF-8");
OutputStream out = response.getOutputStream();
byte[] b = new byte[512];
if( in!=null ){
while ((in.read(b))!=-1) {
out.write(b);
}
}
out.flush();
in.close();
out.close();
}
public InputStream getpcPdf(String userId,String fileName) {
Map<String, Object> map = new HashMap<String, Object>();
//传到ireport报表的参数
map.put("user_id", userId);
return jasperUtil.PCexportPdfDir(fileName, map);
}
}
3.services
```
下图是项目预览报表的效果

一.新建一个springboot项目.
1.pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>ireport</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ireport</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--核心包:jasperreports.jar-->
<!--start 后台传入数据读取报表-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.6.0</version>
</dependency>
<!--字体加粗的依赖包-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.9</version>
</dependency>
<!--生成pdf组件包:iText.jar -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>4.2.1</version>
</dependency>
<!--中文字体包:iTextAsian.jar-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- jasperreports条码包依赖,缺少的话打印包含条码的报告就报错 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>2.2</version>
</dependency>
<!--apache的commons组件包。-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>com.lowagie.text</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
<!--end 后台传入数据读取报表-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.controller
package com.example.ireport.controller;
import com.example.ireport.model.UserInfo;
import com.example.ireport.services.IndexServices;
import com.example.ireport.util.JasperUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class IndexController {
@Autowired
private IndexServices indexServices;
@Resource
private JasperUtil jasperUtil;
@RequestMapping("/index")
public String index(Model model){
List<UserInfo> listUser = indexServices.getAllUser();
model.addAttribute("listUser",listUser);
return "/index";
}
/**
* pc端报告查询功能页面
*/
@RequestMapping("/readReport")
public void readReport( HttpServletResponse response , String userId ) throws Exception {
String fileName = "E:/ireport_file/report1.jasper";
InputStream in = getpcPdf(userId,fileName);
response.setContentType("application/pdf; charset=UTF-8");
OutputStream out = response.getOutputStream();
byte[] b = new byte[512];
if( in!=null ){
while ((in.read(b))!=-1) {
out.write(b);
}
}
out.flush();
in.close();
out.close();
}
public InputStream getpcPdf(String userId,String fileName) {
Map<String, Object> map = new HashMap<String, Object>();
//传到ireport报表的参数
map.put("user_id", userId);
return jasperUtil.PCexportPdfDir(fileName, map);
}
}
3.services
```