【发布时间】:2017-09-12 04:38:44
【问题描述】:
我正在使用 JavaFX PrinterJob 打印节点,如下所示:
/**
* @param node
*/
public static final void print(Node node)
throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
Printer printer = Printer.getDefaultPrinter();
PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE,
Printer.MarginType.HARDWARE_MINIMUM);
PrinterJob job = PrinterJob.createPrinterJob();
if (job != null && job.showPrintDialog(CommonConstants.geMasterStage())) {
boolean success = job.printPage(pageLayout, node);
if (success) {
job.endJob();
}
}
}
这在 Windows 上运行良好,但是,Printer.getDefaultPrinter(); 在 mac 上始终为空,所以我确保打印机可用,它是可用的,Printer.getAllPrinters() 返回空数组。
请注意java.awt.print.PrinterJob.getPrinterJob() 在 windows 和 mac 上都可以正常工作。
是什么问题或我做错了什么?
【问题讨论】:
-
它对我来说很好用。你有安装打印机吗?在这种情况下,
Printer.getAllPrinters()应该返回一个非空列表。 -
@JoséPereda 是的,我有,而且它在 java.awt 打印机作业中工作得很好,,,这很奇怪
-
我遇到了同样的错误,你解决了吗?
-
@pcambre nope,我们实现了其他东西,
标签: java macos javafx printing