Попытка выполнить некоторые печати с использованием JasperReport.
JasperReport предоставляет функцию для печати документа в BufferedImage, который я преобразую в WritableImage для отображения его на объекте ImageView (как показано в коде ниже).
К тому времени я получаю исключение пространства кучи Java из памяти в функции getImage (int pageNumber).Я предполагаю, что старые ссылки на изображения не освобождаются.
Можно ли это исправить?
private void viewPage(int pageNumber) throws JRException {
this.resultViewer.setFitHeight(this.imageHeight * this.zoomFactor);
this.resultViewer.setFitWidth(this.imageWidth * this.zoomFactor);
this.resultViewer.setImage(this.getImage(pageNumber));
}
@FXML
private ImageView resultViewer;
private WritableImage getImage(int pageNumber) throws JRException {
return SwingFXUtils
.toFXImage((BufferedImage) JasperPrintManager.printPageToImage(this.jasperPrint, pageNumber, 2), null);
}