Я ищу метод с JRGraphics2DExporter
для экспорта отчета в формате JPG.JRGraphics2DExporter - Как экспортировать отчет в формате JPG?
Есть ли возможность сделать это с помощью JRGraphics2DExporter
?
Я ищу метод с JRGraphics2DExporter
для экспорта отчета в формате JPG.JRGraphics2DExporter - Как экспортировать отчет в формате JPG?
Есть ли возможность сделать это с помощью JRGraphics2DExporter
?
Вы можете указать экспортеру, чтобы отправить отчет на изображение в память, а затем сохранить его на диск.
Создать изображение (установить правильную ширину, высоту и формат):
BufferedImage image = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
Создать экспортер, настроить его (возможно, некоторые другие параметры должны быть установлены) и экспортировать отчет:
JRGraphics2DExporter exporter = new JRGraphics2DExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRGraphics2DExporterParameter.GRAPHICS_2D, (Graphics2D)image.getGraphics());
exporter.setParameter(JRGraphics2DExporterParameter.ZOOM_RATIO, Float.valueOf(1));
exporter.exportReport();
дамп изображение на диск:
ImageIO.write(image, "PNG", new File("image.png"));
Вы хотите использовать JRGraphics2DExporter
, но это может также может быть сделано непосредственно с помощью JasperPrintManager
Пример кода contemplenting нескольких изображений 1 для каждой страницы
//Get my print, by filling the report
JasperPrint jasperPrint = JasperFillManager.fillReport(report, map,datasource);
final String extension = "jpg";
final float zoom = 1f;
String fileName = "report";
//one image for every page in my report
int pages = jasperPrint.getPages().size();
for (int i = 0; i < pages; i++) {
try(OutputStream out = new FileOutputStream(fileName + "_p" + (i+1) + "." + extension)){
BufferedImage image = (BufferedImage) JasperPrintManager.printPageToImage(jasperPrint, i,zoom);
ImageIO.write(image, extension, out); //write image to file
} catch (IOException e) {
e.printStackTrace();
}
}
Если вы хотите 1 файл со всеми страницами, вы должны установить isIgnorePagination="true"
на бирке jasperReport
Да, вы должны установить JRExporterParameter.PAGE_INDEX, чтобы выбрать, какая страница экспортируется, и если ZOOM_RATIO 1, приятно получить размер изображения для JasperPrint (getPageWidth(), getPageHeight()) –
exporter.setParameter устарел – Novaax
@Novaax Вы должны прочитать [JRAbstractExporter.html.setParameter API doc] (http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRAbstractExporter.html#setParameter%28net.sf.jasperreports.engine.JRExporterParameter ,% 20java.lang.Object% 29). Метод setParameter заменяется на setExporterInput (ExporterInput), setConfiguration (ExporterConfiguration), setConfiguration (ReportExportConfiguration) и setExporterOutput (ExporterOutput) –