Java教程:Jasper-pdf打印类

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;@Component
public class JreportUtils {private static Logger logger = LoggerFactory.getLogger(JreportUtils.class);/*** pdf打印** @param jrxmlFileName jasper文件名* @param response 相应* @param map $P{}值* @param list $F{} 数据集* @param <T>* @throws Exception*/public static <T> void printPdf1(String jrxmlFileName, HttpServletResponse response, Map<String, Object> map, List<T> list) throws Exception {if (StringUtils.isEmpty(jrxmlFileName)) {response.setContentType("text/html;charset=utf-8");response.getWriter().print("报表名称不可为空");return;}jrxmlFileName = jrxmlFileName + ".jrxml";InputStream inputStream = new ClassPathResource("/jasper/" + jrxmlFileName).getInputStream();JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(list);JasperReport jasperReport = JasperCompileManager.compileReport(inputStream);ServletOutputStream servletOutputStream = response.getOutputStream();byte[] bytes = null;List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>();JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, dataSource);jasperPrintList.add(jasperPrint);//获取输出字节流ByteArrayOutputStream baos = new ByteArrayOutputStream();JRPdfExporter exporter = new JRPdfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);//设置多个报表模版exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);//获取pdf文件流exporter.exportReport();bytes = baos.toByteArray();response.setContentType("application/pdf");response.setContentLength(bytes.length);servletOutputStream.write(bytes, 0, bytes.length);servletOutputStream.flush();servletOutputStream.close();}
}

Java教程:Jasper-pdf打印类相关推荐

  1. java 普通类request_[Java教程]spring在普通类中获取session和request

    [Java教程]spring在普通类中获取session和request 0 2014-08-12 08:01:13 在使用spring时,经常需要在普通类中获取session,request等对像. ...

  2. 王者荣耀用java_王者荣耀版Java教程第二期:类与属性

    1.用王者荣耀来学JAVA,理解什么是类? 相信你一定玩过王者荣耀这个游戏,就算没有玩过,肯定也听说过.假如,我们要自己设计这个游戏,你打算怎么做? 用面向过程的思想肯定是不行的,那么多英雄,那么多场 ...

  3. JAVA--word等文件转PDF工具类

    word转pdf工具类 关键代码片段 public static void main(String[] args) {         String docPath = "D:\\测试文件. ...

  4. java程序设计实用教程高飞pdf_普通高等教育“计算机类专业”规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载...

    普通高等教育"计算机类专业"规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载 图书介绍 ☆☆☆☆☆ 高飞,赵小敏,陆佳炜 等 著 下载链接在页面底 ...

  5. java 配置信息_[Java教程]java 配置信息类 Properties 的简单使用

    [Java教程]java 配置信息类 Properties 的简单使用 0 2016-12-08 09:00:09 Properties :(配置信息类) 是一个表示持久性的集合 ,继承 Hashta ...

  6. Java实现PDF打印的解决方案

    1.Java Print Service Java Print Service是Java自带的打印框架,所在的包javax.print.PrintService;. 实现PDF打印的代码流程如下 // ...

  7. java实现html页面转pdf解决方案_[Java教程]纯js实现html转pdf

    [Java教程]纯js实现html转pdf 0 2017-02-16 00:00:30 项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式. ...

  8. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并

    [Java教程]Java基础之PDF文件的合并 0 2017-07-28 00:00:45 1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下:package com;i ...

  9. java 连接打印机实现打印PDF文件的功能

    java 连接打印机打印PDF文件 需求背景是导出excel并且打印,excel导出设置和转PDF网上有很多资料,本文只记录连接打印机打印PDF的部分. 1: 需要引入maven配置 <depe ...

最新文章

  1. LeetCode简单题之数组序号转换
  2. 超过AttGAN,谷歌推出生成文本到图像的新框架 TReCS
  3. 摩卡业务服务管理(Mocha BSM)解决方案
  4. python中常见的流程结构-【Python2】04、Python程序控制结构
  5. 【Binder 机制】AIDL 分析 ( 创建 Service 服务 | 绑定 Service 远程服务 )
  6. UVALive7670 Asa's Chess Problem,上下界费用流,另类解法
  7. java获取默认用户目录_Java获取当前路径
  8. Java 异常处理(标准抛异常、异常处理、多异常、Finally、多线程异常处理、获取异常的堆栈信息、链试异常、自定义异常)
  9. 谷歌大脑推出机器人强化学习平台,硬件代码全开源,花最少的钱,训超6的机器人...
  10. Python + OpenCV 环境配置
  11. 性能测试学习09_场景设计(一)
  12. dsp呼吸灯C语言编程,pwm呼吸灯原理及程序分享
  13. Junos: 使用之前
  14. 新手可以操作的日赚50元的网赚项目
  15. 怎么制作U盘启动盘来安装系统
  16. android 动态修改logo,关于app动态修改logo的问题
  17. python换发型_初学Python的一些细节
  18. IE不能上网浏览的原因和解决办法
  19. WM_CHAR,WM_UNICHAR,WM_IME_CHAR
  20. iOS 利用 Metal 实现滤镜与动效滤镜

热门文章

  1. 如何恢复vscode的默认配置_VS恢复默认设置的2种方法
  2. python中用Selenium驱动Edge浏览器的方法
  3. 一名UI设计师眼中的用户体验
  4. ku115上实现adc12dj3200 配置,jesd204b接口,单通道采集模式
  5. python 开源项目 书_十大 Python 机器学习开源项目
  6. 怎么样才能锻炼好口才
  7. PROFINET如何实现“一网到底”?
  8. 机器学习之量化交易-获取最大收益
  9. 【应届生笔试资料分享一】中国人民银行计算机笔试资料汇总
  10. JS 找出字符串中最长回文子串