Report generation:
The following code resides in a servlet and generates both a "letter.docx" word document to download and a "pika.pdf" file in C:
I am able to see the background image i defined in pika, but not in "letter".
InputStream is = request.getServletContext().getResourceAsStream("/resources/reports/" +name);
JasperReport jr = JasperCompileManager.compileReport(is);
JasperPrint jp = JasperFillManager.fillReport(jr, params, ds);
JRExporter exp = new JRDocxExporter();
exp.setParameter(JRExporterParameter.JASPER_PRINT, jp);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
exp.setParameter(JRExporterParameter.OUTPUT_STREAM, bos);
exp.exportReport();
JasperExportManager.exportReportToPdfFile(jp, "C:\\pika.pdf");
byte[] bytes = bos.toByteArray();
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment; filename=\"letter.docx\"");
response.getOutputStream().write(bytes);
response.getOutputStream().flush();
response.getOutputStream().close();
You can also export reports by right-clicking the report in Jasper Reports, then selecting Export.
JRDocxExporter is a grid exporter, it generates a table and then populates each cell of this table with the elements in the jasper template. If an element in the template overlaps another element, the further element does not display, because in a table a cell cannot overlap another cell.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With