So, my problem is that I need to print the content of my tableview, but I have so many items in it, that it only prints the first 23 of them. I found a few solutions here al
Printer printer = Printer.getDefaultPrinter();
Printer printer = Printer.getDefaultPrinter();PrinterJob printerJob = PrinterJob.createPrinterJob();
PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE, Printer.MarginType.HARDWARE_MINIMUM);
printerJob.getJobSettings().setPageLayout(pageLayout);
Stage stage = (Stage) anchorPane.getScene().getWindow();
boolean openPrintDialog = printerJob.showPrintDialog(stage);
if(openPrintDialog){
tableView.setScaleX(0.8);
tableView.setScaleY(0.8);
tableView.setTranslateX(-70);
tableView.setTranslateY(-50);
ObservableList> allPrintItems = tableView.getItems();
ObservableList > pageList = FXCollections.observableArrayList();
boolean printing = false;
for(int i=0; i oneRow = allPrintItems.get(i);
pageList.add(oneRow);
if(i!=0 && (i%24==0 || i == (allPrintItems.size()-1))){
tableView.setItems(pageList);
printing = printerJob.printPage(tableView);
pageList.clear();
}
}
tableView.setItems(allPrintItems);
if(printing)printerJob.endJob();
tableView.setScaleX(1.0);
tableView.setScaleY(1.0);
tableView.setTranslateX(0);
tableView.setTranslateY(0);