gpt4 book ai didi

JavaFX - javafx.print.PrinterJob.createPrinterJob() 在 mac 上始终为 null

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:27 25 4
gpt4 key购买 nike

我正在使用 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 上始终为 null,因此我确保打印机可用,而且 Printer.getAllPrinters() 返回空数组。

值得注意的是,java.awt.print.PrinterJob.getPrinterJob() 在 Windows 和 Mac 上都可以正常工作。

问题是什么或者我做错了什么?

最佳答案

我遇到了同样的问题,每当我使用 Printer.getAllPrinters() 检查可用打印机时,它都会显示所有可用打印机,但 createPrinterJob() 始终返回 null。

因此,我通过右键单击 MacOS 中系统偏好设置上的打印机和扫描仪设置下的打印机来重置打印系统。重置打印系统后,将打印机再次添加到打印机列表中。然后在 Java 上再次运行 createPrinterJob(),此后再也没有收到 null。

关于JavaFX - javafx.print.PrinterJob.createPrinterJob() 在 mac 上始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com