首页 > 解决方案 > JavaFX 打印 API 无法正确取消保存/打印屏幕。它仍然会弹出选择要保存的目录的窗口

问题描述

我最近开始使用 Javafx 打印 API 将某些内容导出到 PDF 文件和/或打印屏幕。当您决定保存/打印时,它工作正常,但是当您在选择保存或打印到何处的窗口上单击取消时,它仍会弹出窗口以选择要命名的目录并将文件保存到其中。

我通过 FXML 文件将函数链接到 On Mouse Clicked 事件,但我认为这不是问题所在。

这是我目前拥有的代码:

public void printSaveDiagram() {
    System.out.println("printing/saving file!");
    // Create the Printer Job
    PrinterJob printerJob = PrinterJob.createPrinterJob();

    // Get The Printer Job Settings
    JobSettings jobSettings = printerJob.getJobSettings();

    PageLayout pageLayout;
    if (printerJob != null) {

        printerJob.showPrintDialog(Controller.stage);

        // Get The Printer
        Printer printer = printerJob.getPrinter();
        // Create the Page Layout of the Printer
        pageLayout = printer.createPageLayout(Paper.C, PageOrientation.LANDSCAPE,Printer.MarginType.EQUAL);
        jobSettings.setPageLayout(pageLayout);
        printerJob.printPage(diagram);
        printerJob.endJob();
    }
}

标签: javajavafx

解决方案


推荐阅读