Jasper Ireport 一起导出两个模板
这事第二次写这个文章了,上次写到一半公司停电,好吧!没有保存,俗话说的好,点背不能怨社会,淡定。
在我们通常用ireport制作模板打印PDF文件时,最常用的是一次使用一个模板。但是接到客户的要求说是要先出说明,再打印数据。这就是两个模板,要找方法了。
我一直用的是struts2配置jasper,这样可以少写很多jasper固定的代码,只需要在struts.xml中配置就可以了,代码如下:
<action name="repairRep3" class="com.cider.action.MaintenanceInvoice">
<result name="success" type="jasper">
<param name="location">/report/MaintenanceInvoice.jasper</param><!--模板名称-->
<param name="dataSource">list</param><!--要打印的list-->
<param name="reportParameters">map</param><!--要打印的map-->
<param name="format">PDF</param><!--导出文件名称-->
</result>
</action>
以上是导出一个模板的情况,但是导出两个模板怎么在struts.xml中配置,我在网上找了很久也没找到方法,如果哪位知道怎么做,望不吝赐教!
我要说的是在写代码实现的导出两个模板的方法。
首先将要打印的数据封装在list和map里,这里就不详细说了。
1.用JasperView导出
JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(listT);
JasperPrint jasperPrint1 = JasperFillManager.fillReport(servletContext.getRealPath("/report/tplate-report.jasper"),map);
JasperPrint jasperPrint2 = JasperFillManager.fillReport(servletContext.getRealPath("/report/tplate-report2.jasper"),map,jrbean);
List pages = jasperPrint2 .getPages();
for (int j = 0; j < pages.size(); j++) {
JRPrintPage object = (JRPrintPage)pages.get(j);
jasperPrint1.addPage(object);
}
JasperViewer.viewReport(jasperPrint1,false);
打印出来的文档时用Jasper自带的插件打开的,会让客户很不习惯(为什么不是我电脑上装的PDF软件?)。
2.ServletContext servletContext = ServletActionContext.getServletContext();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/pdf");
JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(listT);
JasperPrint jasperPrint1 = JasperFillManager.fillReport(servletContext.getRealPath("/report/tplate-report.jasper"),map);
JasperPrint jasperPrint2 = JasperFillManager.fillReport(servletContext.getRealPath("/report/tplate-report2.jasper"),map,jrbean);
List<JasperPrint> listJasperPrint = new ArrayList<JasperPrint>();
listJasperPrint.add(jasperPrint1);
listJasperPrint.add(jasperPrint2);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST,listJasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,baos);
exporter.exportReport();
response.setContentLength(baos.size());
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);
sos.flush();
sos.close();
就是这个,还是比较简单的。把两个模板放在一个list中,然后变成一个输出流,导出流这个就比较简单了吧!
第一次写博客让大家见笑了!!!
- 点赞
- 收藏
- 分享
- 文章举报
- Jasperreport+iReport报表设计(二)通用导出页面
- 用ireport设计报表,通过jasper实现pdf导出及打印
- 【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
- JasperReport报表技术导出PDF报表(使用IReport设计工具 )
- jasperrepor+iReport报表导出PDF支持中文
- 使用ireport设计jasperreport报表模板,以及简单的设计使用案例
- 求教各位大佬 我用jasper+ireport导出word文档 导出的文档有一堆线怎么办
- 根据PDF模板从数据库中读取数据动态生成PDF文件。或者用ireport+jasperreports这种组合也可以...
- jasperreport + ireport 导出各种类型文件(word,excel,html,pdf,打印) .
- jasperReport+ireport实现报表导出和数据分析
- ireport设计导出模板,Jasperreport导出PDF、HTML、Excel
- jasperReports+iReport实现另存为导出excel超详细
- iReport+JasperReport实现数据库记录导出到html、excel、pdf文档
- Java(Springmvc)报表小记之 JasperReports & iReport导出excel(超详细)
- ireport中使用java进行pdf转化,jasper作为模板
- Ireport+JasperReport制作报表一-模板制作
- 一起谈.NET技术,编写T4模板无法避免的两个话题:"Assembly Locking"&"Debug"
- Ireport+JasperReport制作报表二-JasperReport编译模板
- 导出PDF__iReport(模版) + Jasper(数据填充)
- ireport、jasperreport studio 导出excel有白色背景