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