si in effetti hai ragione.
allora, ho fatto un pò di pulizia, ma adesso escono solo pagine bianche:
codice:
public class PrintImage implements Printable {
private BufferedImage[] images;
public PrintImage(BufferedImage[] images) {
this.images = images;
}
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex < images.length) {
graphics.drawImage(images[pageIndex], 0, 0, images[pageIndex].getWidth(), images[pageIndex].getHeight(), null);
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
}
}
e passo l'array così:
codice:
int lvSize = listViewImages.getItems().size();
if (lvSize > 0) {
ArrayList<String> lp = new ArrayList<>(listViewImages.getItems());
BufferedImage[] bufferedImages = new BufferedImage[lp.size()];
for (int i = 0; i < lp.size(); i++) {
Image image = new Image(new File(lp.get(i)).toURI().toString());
bufferedImages[i] = SwingFXUtils.fromFXImage(image, null);
}
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(new PrintImage(bufferedImages));
if (pj.printDialog()) {
try {
pj.print();
} catch (PrinterException e) {
GenericDialog.showDialog(e.getMessage(), Alert.AlertType.ERROR);
}
}
}