Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Export JasperReport to PDF OutputStream?

I'm writing a pretty simple sample project for familiarizing myself with Jasper Reports. I'd like to export a report I've configured to a PDF OutputStream, but there's no factory method for it:

InputStream template = JasperReportsApplication.class     .getResourceAsStream("/sampleReport.xml"); JasperReport report = JasperCompileManager.compileReport(template); JasperFillManager.fillReport(report, new HashMap<String, String>()); // nope, just chuck testa.   //JasperExportManager.exportReportToPdfStream(report, new FileOutputStream(new File("/tmp/out.pdf"))); 

How can I get the PDF in an OutputStream?

like image 364
Naftuli Kay Avatar asked Dec 19 '11 23:12

Naftuli Kay


1 Answers

Ok, so here's how it works; JasperFillManager actually returns a JasperPrint object, so:

// get the JRXML template as a stream InputStream template = JasperReportsApplication.class     .getResourceAsStream("/sampleReport.xml"); // compile the report from the stream JasperReport report = JasperCompileManager.compileReport(template); // fill out the report into a print object, ready for export.  JasperPrint print = JasperFillManager.fillReport(report, new HashMap<String, String>()); // export it! File pdf = File.createTempFile("output.", ".pdf"); JasperExportManager.exportReportToPdfStream(print, new FileOutputStream(pdf)); 

Enjoy.

like image 97
Naftuli Kay Avatar answered Oct 23 '22 14:10

Naftuli Kay