首页 > 解决方案 > 如何打印 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();
        }
    }
}

任何帮助表示赞赏。谢谢

标签: javajavafx

解决方案


自从我提出问题以来,我一直在试图找出问题所在。这就是为什么我得到空白打印的原因。通常它正在打印,但它正在打印空白。所以我尝试创建该窗格的一个实例并将所有这些节点添加到其中。它通常是添加的,但我是在 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();
    }
}

现在,它起作用了。

感谢任何感兴趣的人。


推荐阅读