如何打印javafx窗格?

时间:2018-07-08 15:26:34

标签: java javafx

我的javafxml文件中有一个名为 receiptPane 的窗格。我喜欢打印此窗格,因为它包含表格视图和标签。 我知道如何打印节点,但是以某种方式我无法弄清楚它是否可以打印窗格。 如果我在此处放置任何节点都可以工作,它将打印该节点。但是,如果我将窗格放在这里,它不会打印出来。

@FXML
public void print() {
   // Create a printer job for the default printer
    PrinterJob job = PrinterJob.createPrinterJob();
    if (job != null && job.showPrintDialog(receiptPane.getScene().getWindow())){
        boolean success = job.printPage(receiptPane);
        if (success) {
            job.endJob();
        }
    }
}

任何帮助表示赞赏。 谢谢

1 个答案:

答案 0 :(得分:0)

自从我提出问题以来,我一直在试图找出问题所在。 这就是为什么我得到空白打印的原因。 通常它正在打印,但它正在打印空白。因此,我尝试创建该窗格的实例并将所有这些节点添加到其中。 通常会添加它,但是我是在Scene Builder中完成的。我认为那是我的问题。

所以,解决方案在下面;

 receiptPane = new Pane();
    receiptPane.getChildren().addAll(totalL,
            tAmountL,
            dateTimeL,
            orderIDL,
            compNameL,
            compAddress1L,
            compAddress2L,
            thanksL,
            paymentType1L,
            paymentTypeAmount1L,
            dueL,
            dueAmountL,
            ordReceipts
    );
 PrinterJob job = PrinterJob.createPrinterJob();
if (job != null && job.showPrintDialog(receiptPane.getScene().getWindow())){
    boolean success = job.printPage(receiptPane);
    if (success) {
        job.endJob();
    }
}

现在,它可以工作了。

感谢任何有兴趣的人。