Commit c135c7e5703ca326a650408dad6aab1a5a2df667
1 parent
df1810fc
pdf预览完成
Showing
2 changed files
with
13 additions
and
110 deletions
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 | -} |