From c135c7e5703ca326a650408dad6aab1a5a2df667 Mon Sep 17 00:00:00 2001
From: pengcheng <1432755665@qq.com>
Date: Wed, 20 Nov 2019 08:38:38 +0800
Subject: [PATCH] pdf预览完成

---
 src/main/java/com/huaheng/framework/jasper/JasperConfig.java         | 28 +++++++++++++---------------
 src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java | 95 -----------------------------------------------------------------------------------------------
 2 files changed, 13 insertions(+), 110 deletions(-)
 delete mode 100644 src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java

diff --git a/src/main/java/com/huaheng/framework/jasper/JasperConfig.java b/src/main/java/com/huaheng/framework/jasper/JasperConfig.java
index d259ae0..3e95fdd 100644
--- a/src/main/java/com/huaheng/framework/jasper/JasperConfig.java
+++ b/src/main/java/com/huaheng/framework/jasper/JasperConfig.java
@@ -39,20 +39,18 @@ public class JasperConfig {
             HttpServletRequest request,
             HttpServletResponse response) throws Exception {
 
-//        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);
-
-        JasperReportsPdfView jasperReportsPdfView = new JasperReportsPdfView("jaspers/mypage.jasper","mypage.pdf");
-        jasperReportsPdfView.renderMergedOutputModel(parameters,request,response);
+        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);
+
     }
 }
diff --git a/src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java b/src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java
deleted file mode 100644
index f931dfd..0000000
--- a/src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.huaheng.framework.jasper;
-
-import net.sf.jasperreports.engine.*;
-import org.springframework.web.servlet.view.AbstractView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *  通用导出PDF视图类
- * @author ricard
- * @time 19/11/15
- *
- */
-public class JasperReportsPdfView extends AbstractView {
-    //继承AbstractView
-
-    //内容类型,即格式
-    private static final String CONTENT_TYPE = "application/pdf";
-
-    //模板路径
-    private String templatePath;
-
-    //导出文件名
-    private String exportFileName;
-
-
-    //重置构造方法
-    public JasperReportsPdfView(String templatePath,String exportFileName){
-        this.templatePath = templatePath;
-        if (exportFileName != null) {
-            try {
-                exportFileName = URLEncoder.encode(exportFileName, "UTF-8");
-            } catch (UnsupportedEncodingException e) {
-                e.printStackTrace();
-            }
-        }
-        this.exportFileName = exportFileName;
-        setContentType(CONTENT_TYPE);
-    }
-
-
-    public Map<String,Object> getParamsMap(Map<String,Object> map) throws Exception{
-        Map<String,Object> params =new HashMap<>();
-        for(String key : map.keySet()){
-            Object val = map.get(key);
-            if(val instanceof JRDataSource){
-                continue;
-            }else {
-                params.put(key,val);
-            }
-        }
-        return params;
-    }
-
-
-    protected JRDataSource getDataSource(Map<String,Object> map) throws Exception{
-        for(String key : map.keySet()){
-            Object val = map.get(key);
-            if(val instanceof JRDataSource){
-                return (JRDataSource) map.get(key);
-            }
-        }
-        return new JREmptyDataSource();
-    }
-
-    @Override
-    protected void renderMergedOutputModel(Map<String, Object> map, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
-
-        //设置编码和格式
-        httpServletResponse.setCharacterEncoding("utf-8");
-        httpServletResponse.setContentType(getContentType());
-        httpServletResponse.setHeader("content-disposition","attachment;filename=" + exportFileName);
-
-        try(
-                InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(templatePath)
-        ){
-            try(OutputStream outputStream = httpServletResponse.getOutputStream()){
-                JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream,getParamsMap(map),getDataSource(map));
-                JasperExportManager.exportReportToPdfStream(jasperPrint,outputStream);
-            }catch (IOException e){
-                e.printStackTrace();
-            }
-        }catch (IOException e){
-            e.printStackTrace();
-        }
-    }
-}
--
libgit2 0.22.2