当前位置: 首页 > 面试题库 >

如何将多个jrxml jasper报告整理到一个pdf输出文件中

孟增
2023-03-14
问题内容

我必须使用五个不同的SQL查询来准备报告。每个查询将给出一个报告表。

因此,我编写了5个jrxml文件,每个文件都与上述查询之一相对应,并带有各自的标题,标题设置,页脚,页码等。

现在,我能够将上述每个jrxmls编译,打印和导出为5个不同的pdf。

但是,客户希望将所有报告整理为一个pdf。即在最终的pdf中,前四页将报告为一个,接下来的五页报告为两个,然后报告三,依此类推。

1)如何实现这一目标?

2)每个报告的页码为1 / 4、2 / 4、3 /
4等。其中第二部分(即完整的页码)以评估时间作为报告进行评估。因此,当我将所有报告整理为单个pdf(如果可能)时,是否有可能将页数重新编号为最终pdf?

根据以下答案,我在java类中执行了以下操作,并且可以正常工作:

 try
            {
            JasperReport jreport1 = JasperCompileManager.compileReport(input1);
            JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JREmptyDataSource());
            //JasperExportManager.exportReportToPdfFile(jprint, "/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytest.pdf");

            JasperReport jreport2 = JasperCompileManager.compileReport(input2);
            JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, new HashMap(), new JREmptyDataSource());

            JasperReport jreport3 = JasperCompileManager.compileReport(input3);
            JasperPrint jprint3 = JasperFillManager.fillReport(jreport3, new HashMap(), new JREmptyDataSource());

            List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();

            jprintlist.add(jprint1);
            jprintlist.add(jprint2);
            jprintlist.add(jprint3);

            JRExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);

            OutputStream output = new FileOutputStream(new File("/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytestbatch.pdf"));

            exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
            exporter.exportReport();

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

上图:input1,input2,input3是输入jrxml的字符串路径

我的JRXML文件仅打印三个消息:Hello World 1,Hello World 2,Hello World 3。

 <?xml version="1.0"?>
<!DOCTYPE jasperReport
  PUBLIC "-//JasperReports//DTD Report Design//EN"
  "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="Simple_Report">
 <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World One!]]></text>
      </staticText>
    </band>
  </detail>
</jasperReport>

谢谢阅读!


问题答案:

您可以利用导出整个jasperprint列表的优势:

List jpList = new ArrayList();
jpList.add(JRLoader.loadObjectFromFile("build/reports/Report1.jrprint")); 
...
JRExporter exporter = new JRPdfExporter(); 
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jpList); 
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, stream); 
exporter.exportReport();


 类似资料:
  • 目前,我正在以以下方式使用Jasper Reports生成一个pdf文件。 我创建了一个名为“singlePagePdf.jrxml”的jrxml文件 我声明了一个bean如下 因此,当调用相关URL时,我的控制器将按如下方式处理它。 目前,它成功地为一名员工生成了报告。现在,我想以相同的格式(使用相同的jrxml文件)为员工列表创建报告,并将其输出到单个pdf文件(即包含多个员工工作细节记录的p

  • 我在同一个文件夹中有两个文件:chapter1。Rmd和第2章。Rmd,包括以下内容: 第一章Rmd 第2章Rmd 如何将它们组合成一个pdf输出? 当然,渲染(input=“chapter1.Rmd”,output\u format=“pdf\u document”)可以完美地工作,但渲染(input=“chapter1.Rmd”,input=“chapter2.Rmd”,output\u fo

  • 我在将柱状图从“for循环”保存到多个pdf文件时遇到问题。 我已经试过了。savefig()和img2pdf。 我要么保存一个绘图,要么一个也不保存。我想将每个dist[I]保存到pdf文件中。最后一行没有真正起作用。。。

  • 问题内容: 在python中(对于在GUI中创建的一个图形),我可以使用以下方法将图形保存在.jpg和.pdf下: 要么 我想使用一个文件将多个图形保存为.pdf或.jpg(就像在数学实验室中所做的一样)。有人可以帮忙吗? 问题答案: 使用为您解决问题。将您的对象传递给方法。 例如,如果您打开了一大堆对象并将其保存到多页PDF中,则可以执行以下操作:

  • 问题内容: 如何将多个PDF文件合并/转换为一个大PDF文件? 我尝试了以下操作,但是目标文件的内容不符合预期: 我需要一个非常简单/基本的命令行(CLI)解决方案。最好的办法是,如果我可以将合并/转换的输出直接传送到管道中(就像我之前在这里提出的问题中最初尝试的那样:Linux管道(convert->pdf2ps-> lp)。 问题答案: 抱歉,我设法使用Google自己找到了答案,还有些运气: