java - 如何将两个 jrxml jasper 报告合并为一个 pdf 输出文件

标签 java jasper-reports

我有两个 JRXML 文件,具有两个不同的数据源。 第一个 jasper 报告数据源是 JRXmlDataSource,第二个 jasper 报告数据源是 JRResultSetDataSource

try
{
            conn= objConnector.getConnection();
            conn.setAutoCommit(false);

            PreparedStatement ps = conn.prepareCall("{ call Sp_DEMO(?) }");
            ps.setString(1,condition);
            ResultSet rs = ps.executeQuery();

            JasperReport jreport1 = JasperCompileManager.compileReport("d:\\JRXML\\ECGImage.jrxml");
            JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JRResultSetDataSource(rs));
            jprintlist.add(jprint1);
            JasperReport jasperReport = JasperCompileManager.compileReport("d:\\JRXML\\RadiologyReport.jrxml");

                JRXmlDataSource xmlDataSource = new JRXmlDataSource("d:\\abc.xml"+, "/X-RayReport/Type");
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),xmlDataSource);
                jprintlist.add(jasperPrint);


            File file = new File("d:\\demo.pdf");
            if(file.exists())
            {
                file.delete();
            }
            JRExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);
            OutputStream output = new FileOutputStream(new File("d:\\demo.pdf"));
            exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
            exporter.exportReport();

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

我想创建单个 pdf 文件作为两个 jrxml 文件的输出。

最佳答案

您可以像这样合并以上两个pdf

List pages = jasperPrint.getPages();
for (int j = 0; j < pages.size(); j++) {
   JRPrintPage object = (JRPrintPage)pages.get(j);
   jprint1.addPage(object);
}

jprint1 将是您的单个输出。

关于java - 如何将两个 jrxml jasper 报告合并为一个 pdf 输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192782/

相关文章:

java - Zxing用J​​ava 1.5编译2.0

java - 并发访问Java servlet的service方法

java - WEKA:如何禁用标记数据的过滤器?

java - ConcurrentModificationException 和多个 catch block

java - 如何确定java中构造函数中变量的类型?

jasper-reports - 如何将 CSV 数据源传递给子报表

java - 顶点 : Keep serve alive after closing PDF file

java - 自定义具有多个系列、轴和形状的图表

java - 使用速度模板打印 JasperReports

java - 动态报告: Custom Group Footer based on Group Name