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();
}
}
}
任何帮助表示赞赏。谢谢
解决方案
自从我提出问题以来,我一直在试图找出问题所在。这就是为什么我得到空白打印的原因。通常它正在打印,但它正在打印空白。所以我尝试创建该窗格的一个实例并将所有这些节点添加到其中。它通常是添加的,但我是在 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();
}
}
现在,它起作用了。
感谢任何感兴趣的人。
推荐阅读
- docker - Ubuntu 上的 Docker 主机占用了 VM 上的所有空间
- laravel - Laravel 验证有效,但返回 200 而不是 422
- ansible - 在任务条件中使用 ansible 变量
- javascript - 使用 Leaflet 和 Vue.js 创建地图
- python - 如何在 Python 中将字符串的第一个字母大写,而忽略 HTML 标记?
- java - 查找给定日期的所有过帐日期(会计)
- javascript - Stencil - 全局 CSS 没有集成到 React
- python - 我试图将 Box2D 安装到 python 但我没有成功
- mysql - 一对多关系MYSQL
- angular - Angular 和 gh-pages 未从资产文件夹加载特定图像