/** * @param out * @return extension png or jpg for usage as file name extension. */ public String write(final OutputStream out) { final JFreeChart chart = getJFreeChart(); final int width = getWidth(); final int height = getHeight(); String extension = null; try { if (getImageType() == JFreeChartImageType.PNG) { extension = "png"; ChartUtilities.writeChartAsPNG(out, chart, width, height); } else { extension = "jpg"; ChartUtilities.writeChartAsJPEG(out, chart, width, height); } } catch (final IOException ex) { log.error("Exception encountered " + ex, ex); } return extension; }
private void exportJFreeChart(final ExportJFreeChart exportJFreeChart) { final StringBuilder sb = new StringBuilder(); sb.append("pf_chart_"); sb.append(DateHelper.getTimestampAsFilenameSuffix(new Date())); final ByteArrayOutputStream out = new ByteArrayOutputStream(); final String extension = exportJFreeChart.write(out); sb.append('.').append(extension); DownloadUtils.setDownloadTarget(out.toByteArray(), sb.toString()); }
private void jFreeChartExport() { try { final ExportJFreeChart exportJFreeChart = (ExportJFreeChart) groovyResult.getResult(); final StringBuilder sb = new StringBuilder(); sb.append("pf_chart_"); sb.append(DateHelper.getTimestampAsFilenameSuffix(new Date())); final Response response = getResponse(); final String extension = exportJFreeChart.write(response.getOutputStream()); sb.append('.').append(extension); final String filename = sb.toString(); final int width = exportJFreeChart.getWidth(); final int height = exportJFreeChart.getHeight(); final JFreeChartImage image = new JFreeChartImage("image", exportJFreeChart.getJFreeChart(), exportJFreeChart.getImageType(), width, height); image.add(AttributeModifier.replace("width", String.valueOf(width))); image.add(AttributeModifier.replace("height", String.valueOf(height))); imageResultContainer.removeAll(); imageResultContainer.add(image).setVisible(true); ((WebResponse) response).setAttachmentHeader(filename); ((WebResponse) response).setContentType(DownloadUtils.getContentType(filename)); log.info("Starting download for file. filename:" + filename + ", content-type:" + DownloadUtils.getContentType(filename)); response.getOutputStream().flush(); } catch (final Exception ex) { error(getLocalizedMessage("error", ex.getMessage())); log.error(ex.getMessage(), ex); } }
public void write(final OutputStream out) { final ZipOutputStream zipOut = new ZipOutputStream(out); try { zipOut.putNextEntry(new ZipEntry(filename + "/")); for (final ExportZipFile file : zipFiles) { final ZipEntry zipEntry = new ZipEntry(filename + "/" + file.getFilename()); zipOut.putNextEntry(zipEntry); if (file.getExportObject() instanceof ExportWorkbook) { final ExportWorkbook workbook = (ExportWorkbook) file.getExportObject(); final byte[] xls = workbook.getAsByteArray(); if (xls == null || xls.length == 0) { log.error("Oups, xls has zero size. Filename: " + filename); continue; } zipOut.write(xls); } else if (file.getExportObject() instanceof ExportJFreeChart) { final ExportJFreeChart exportJFreeChart = (ExportJFreeChart) file.getExportObject(); exportJFreeChart.write(zipOut); } zipOut.closeEntry(); } } catch (final IOException ex) { log.error(ex.getMessage(), ex); throw new RuntimeException(ex); } finally { IOUtils.closeQuietly(zipOut); } }