Я показываю ControlsFX PopOver для счета, естественно, его содержимое должно быть распечатано.Я успешно распечатал его, используя этот код:
val printer = Printer.getDefaultPrinter()
val layout = printer.createPageLayout(PAPER_INVOICE, PORTRAIT, 0.0, 0.0, 0.0, 0.0)
printer.printerAttributes
val job = PrinterJob.createPrinterJob()
invoiceBox.run {
border = null
transforms += Scale(
layout.printableWidth / invoiceBox.boundsInParent.width,
layout.printableHeight / invoiceBox.boundsInParent.height
)
}
if (job != null && job.showPrintDialog(invoiceBox.scene.window)) {
val success = job.printPage(layout, invoiceBox)
if (success) {
job.endJob()
}
}
Однако, все приложение становится непригодным для использования после процесса печати (даже после отмены диалогового окна печати).Главное окно все еще там, оно просто не может быть сфокусировано, а нажатие на него (или приложение на панели задач Windows) просто производит звук ошибки.Это известная ошибка?
Я тестировал ее только в Windows, поскольку не уверен, что принтер, с которым я работаю (Epson LX-310), совместим с Mac / Linux.