将同一jrxml格式的多个报告合并为一个文件

时间:2017-06-14 04:44:45

标签: spring jasper-reports

目前我正在通过以下方式使用Jasper Reports生成pdf文件。

我创建了一个jrxml文件作为" singlePagePdf.jrxml"

我已经声明了一个bean如下

<bean id="singlePagePdf"
      class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView"
      p:url="classpath:reports/singlePagePdf.jrxml"
      p:reportDataKey="datasource">
    <property name="headers">
        <props>
            <prop key="Content-Disposition">
                attachment; filename=singlePage.pdf
            </prop>
        </props>
    </property>
</bean>

因此,当调用相关的URL时,我的控制器将按如下方式处理它。

 @RequestMapping(value = "/generate-single-pdf", method = RequestMethod.GET)
    @ResponseBody
    public ModelAndView generatePageForEmployeePdf(@RequestParam("empId") String employeeId) {
        List<EmployeeWork> employeeWorkDetails = employeeService.getEmployeeWorkDetails(employeeId);
        JRDataSource jrDataSource = new JRBeanCollectionDataSource(employeeWorkDetails);
        Map<String, Object> parameterMap = new HashMap<>();
        parameterMap.put("title", "Employee Work Deails");
        parameterMap.put("employee", employeeId);
        parameterMap.put("datasource", jrDataSource);
        return new ModelAndView("invoicePdf", parameterMap);
    }

目前它成功为单个员工生成报告。现在我想以相同的格式(使用相同的jrxml文件)创建员工列表的报告,并将其输出到单个pdf文件(即带有多个员工工作明细记录的pdf文件)

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

参考这篇文章: How to collate multiple jrxml jasper reports into a one single pdf output file

如上文所述,此任务可以通过使用循环使用首选格式(singlePagePdf.jrxml)生成单个报告,然后将它们添加到jprintList以获得最终输出来实现。