2000年生成的PDF将从JAVA中的JRXML生成

时间:2014-03-28 06:24:58

标签: java xml jasper-reports pdf-generation

我的网络应用程序触发批处理文件。 批处理文件将触发一个简单的java,它会命中数据库,并带来带有ID的2000条记录。

将有2000个xml文件与ID的名称匹配,它会读取一个文件并将其传递给JRXML。从JRXML开始,它以PDF格式生成。将PDF存储在指定的路径中。 要生成1个PDF文件,需要30秒。但是当我在循环中运行2000条记录时。这需要14个小时才能完成。

任何最好的设计来实现这一目标?或者您的输入很有用

document = JRXmlUtils.parse(JRLoader.getLocationInputStream("D:/StoxxComponents/XMLMergeOut/DK5NY_11.xml")); // file name will be dynamically changing. 

JRXmlDataSource jrds = new JRXmlDataSource(document, "/factsheet");

InputStream input = new FileInputStream("D:/StoxxComponents/Jrxml" + "/"
                + "Template1-MainReport.jrxml"); // this is static 
// load the input file
JasperDesign jasperDesign = JRXmlLoader.load(input);

// Compiling Report Designs
JasperReport jasperReport = JasperCompileManager
                .compileReport(jasperDesign);

// Creating JasperPrint Object
JasperPrint jasperPrint = JasperFillManager.fillReport(
                jasperReport, null, jrds);

// Exporting the report
OutputStream PDF_OUTPUT = new FileOutputStream(new File("D:/StoxxComponents/GeneratedPDF/test"+index+".pdf"));

JasperExportManager.exportReportToPdfStream(jasperPrint, PDF_OUTPUT);

这将在for循环中执行2000次。所以需要14个小时。生成1个PDF需要30秒。

请建议如何调整此代码和逻辑。

0 个答案:

没有答案