Ich suche eine Methode mit JRGraphics2DExporter
, um Bericht als JPG zu exportieren.JRGraphics2DExporter - Wie exportiert Bericht als JPG?
Gibt es irgendeine Möglichkeit, das mit JRGraphics2DExporter
zu tun?
Ich suche eine Methode mit JRGraphics2DExporter
, um Bericht als JPG zu exportieren.JRGraphics2DExporter - Wie exportiert Bericht als JPG?
Gibt es irgendeine Möglichkeit, das mit JRGraphics2DExporter
zu tun?
Sie könnten den Exporteur anweisen, den Bericht auf ein Bild im Speicher zu speichern und dann auf Festplatte zu speichern.
das Bild erstellen (Set die richtige Breite, Höhe und Format):
BufferedImage image = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
den Ausführer erstellen, konfigurieren Sie es (vielleicht einige andere Parameter eingestellt werden sollte) und exportieren Sie den Bericht:
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();
Dump das Bild auf der Festplatte:
ImageIO.write(image, "PNG", new File("image.png"));
Sie die JRGraphics2DExporter
verwenden möchten, aber dies kann auch direkt das JasperPrintManager
Beispiel Code contemplenting mehr Bilder 1 für jede Seite
//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();
}
}
mit getan werden, wenn Sie ein Bild wie mit allen Seiten, sollten Sie die isIgnorePagination="true"
auf dem Jasper Tag gesetzt
Ja Sie JRExporterParameter.PAGE_INDEX besser einstellen zu wählen, welche Seite exportiert wird und wenn ZOOM_RATIO 1 ist schön, die Bildgröße für JasperPrint (getPageWidth(), getPageHeight()) zu erhalten –
exporter.setParameter – Novaax
ist veraltet @Novaax Sie sollten [JRAbstractExporter.html.setParameter-API-Dokument] lesen (http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRABstractExporter.html#setParameter%28net.sf.jasperreports.engine.JRExporterParameter ,% 20java.lang.Object% 29). Die Methode setParameter wird ersetzt durch setExporterInput (ExporterInput), setConfiguration (ExporterConfiguration), setConfiguration (ReportExportConfiguration) und setExporterOutput (ExporterOutput). –