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

标签 java macos javafx printing

我正在使用 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。

所以我通过右键单击 Printers & Scanners 下的打印机重置了打印系统设置System Preferences在 MacOS 中。重置打印系统后,将打印机再次添加到打印机列表中。然后跑createPrinterJob()再次在 Java 上,此后再也没有收到 null。

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

相关文章:

java - eclipse显示点击事件的坐标

macos - libiconv.2.dylib Mac OS X 问题

macos - OS X 产品签名错误 : Could not find appropriate signing identity

java - 动画矩形形状鼠标点击的距离

java - 在 JavaFX 中保持可变长度字符串居中(使用标签)

Java加载带有变量的库

Java 成对反转链表

java - 使用 HttpClientBuilder 时出现“ClassNotFoundException

macos - 如何在 MacOS WKWebView 中支持 WebAuthN?

java - JavaFX 中的 PDF 查看器