Я использую библиотеку javafx.print
, и у меня проблемы.
Позвольте мне объяснить.У меня есть TabPane
с одной слишком много вкладок.Я успешно печатаю каждую вкладку на отдельном листе бумаги, используя fxPrinterJob.printPage(node);
Моя проблема заключается в том, что, поскольку каждая страница имеет свой собственный fxPrinterJob
, она напечатает страницу 1, а затем делает паузу, показагружает страницу 2, печатает страницу 2, делает паузу при загрузке страницы 3 и т. д. Для печати 3 страниц может потребоваться до 30 секунд.
Я пытался заставить одну и ту же fxPrinterJob
печатать каждую страницу,но я получаю длинный список ошибок, который выглядит как блокировка ресурсов, и я чувствую, что не стоит публиковать здесь.
Я не делаю ничего странного или "умного" в настройке PrinterJob
, поэтомуЯ не буду публиковать какой-либо реальный код, а просто дам псевдокод, поскольку я чувствую, что моя проблема заключается в логике или, возможно, просто в некоторых знаниях, которых у меня еще нет.
Scenario A -> Not working
1) Setup the `PrinterJob fxPrinterJob` variable.
2) Grab the Tab pane and loop through each tab
a) Grab the content of each tab and do some maths so it fits to one page
b) Call `fxPrinterJob.printPage(tabNode);` to print the tab.
3) When loop is finished, call `fxPrinterJob.endJob();`
Scenario B -> Works, but prints slowly.
1) Grab the Tab pane and loop through each tab
a) Setup the `PrinterJob fxPrinterJob` variable.
b) Grab the content of each tab and do some maths so it fits to one page
c) Call `fxPrinterJob.printPage(tabNode);` to print the tab.
d) When loop is finished, call `fxPrinterJob.endJob();`
Идея состоит в том, чтобы напечатать еготак же быстро, как и из обычного текстового документа, но он останавливается между страницами.Понятия не имею почему.Я не могу найти ни одного примера, когда кто-нибудь печатает несколько узлов на нескольких страницах, чтобы убедиться, что я что-то не пропускаю.
Спасибо.