Commit c135c7e5703ca326a650408dad6aab1a5a2df667

Authored by pengcheng
1 parent df1810fc

pdf预览完成

src/main/java/com/huaheng/framework/jasper/JasperConfig.java
... ... @@ -39,20 +39,18 @@ public class JasperConfig {
39 39 HttpServletRequest request,
40 40 HttpServletResponse response) throws Exception {
41 41  
42   -// parameters = parameters == null ? new HashMap<>() : parameters;
43   -// //获取文件流
44   -// ClassPathResource resource = new ClassPathResource("jaspers" + File.separator + reportName + ".jasper");
45   -// InputStream jasperStream = resource.getInputStream();
46   -//
47   -// JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
48   -// JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection());
49   -// // JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
50   -// response.setContentType("application/pdf");
51   -// response.setHeader("Content-Disposition", "inline;");
52   -// final OutputStream outputStream = response.getOutputStream();
53   -// JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
54   -
55   - JasperReportsPdfView jasperReportsPdfView = new JasperReportsPdfView("jaspers/mypage.jasper","mypage.pdf");
56   - jasperReportsPdfView.renderMergedOutputModel(parameters,request,response);
  42 + parameters = parameters == null ? new HashMap<>() : parameters;
  43 + //获取文件流
  44 + ClassPathResource resource = new ClassPathResource("jaspers" + File.separator + reportName + ".jasper");
  45 + InputStream jasperStream = resource.getInputStream();
  46 +
  47 + JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
  48 + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection());
  49 + // JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JREmptyDataSource());
  50 + response.setContentType("application/pdf");
  51 + response.setHeader("Content-Disposition", "inline;");
  52 + final OutputStream outputStream = response.getOutputStream();
  53 + JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
  54 +
57 55 }
58 56 }
... ...
src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java deleted
1   -package com.huaheng.framework.jasper;
2   -
3   -import net.sf.jasperreports.engine.*;
4   -import org.springframework.web.servlet.view.AbstractView;
5   -
6   -import javax.servlet.http.HttpServletRequest;
7   -import javax.servlet.http.HttpServletResponse;
8   -import java.io.IOException;
9   -import java.io.InputStream;
10   -import java.io.OutputStream;
11   -import java.io.UnsupportedEncodingException;
12   -import java.net.URLEncoder;
13   -import java.util.HashMap;
14   -import java.util.Map;
15   -
16   -/**
17   - * 通用导出PDF视图类
18   - * @author ricard
19   - * @time 19/11/15
20   - *
21   - */
22   -public class JasperReportsPdfView extends AbstractView {
23   - //继承AbstractView
24   -
25   - //内容类型,即格式
26   - private static final String CONTENT_TYPE = "application/pdf";
27   -
28   - //模板路径
29   - private String templatePath;
30   -
31   - //导出文件名
32   - private String exportFileName;
33   -
34   -
35   - //重置构造方法
36   - public JasperReportsPdfView(String templatePath,String exportFileName){
37   - this.templatePath = templatePath;
38   - if (exportFileName != null) {
39   - try {
40   - exportFileName = URLEncoder.encode(exportFileName, "UTF-8");
41   - } catch (UnsupportedEncodingException e) {
42   - e.printStackTrace();
43   - }
44   - }
45   - this.exportFileName = exportFileName;
46   - setContentType(CONTENT_TYPE);
47   - }
48   -
49   -
50   - public Map<String,Object> getParamsMap(Map<String,Object> map) throws Exception{
51   - Map<String,Object> params =new HashMap<>();
52   - for(String key : map.keySet()){
53   - Object val = map.get(key);
54   - if(val instanceof JRDataSource){
55   - continue;
56   - }else {
57   - params.put(key,val);
58   - }
59   - }
60   - return params;
61   - }
62   -
63   -
64   - protected JRDataSource getDataSource(Map<String,Object> map) throws Exception{
65   - for(String key : map.keySet()){
66   - Object val = map.get(key);
67   - if(val instanceof JRDataSource){
68   - return (JRDataSource) map.get(key);
69   - }
70   - }
71   - return new JREmptyDataSource();
72   - }
73   -
74   - @Override
75   - protected void renderMergedOutputModel(Map<String, Object> map, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
76   -
77   - //设置编码和格式
78   - httpServletResponse.setCharacterEncoding("utf-8");
79   - httpServletResponse.setContentType(getContentType());
80   - httpServletResponse.setHeader("content-disposition","attachment;filename=" + exportFileName);
81   -
82   - try(
83   - InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(templatePath)
84   - ){
85   - try(OutputStream outputStream = httpServletResponse.getOutputStream()){
86   - JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream,getParamsMap(map),getDataSource(map));
87   - JasperExportManager.exportReportToPdfStream(jasperPrint,outputStream);
88   - }catch (IOException e){
89   - e.printStackTrace();
90   - }
91   - }catch (IOException e){
92   - e.printStackTrace();
93   - }
94   - }
95   -}