1 回答

TA贡献1812条经验 获得超5个赞
代码看起来不错。我建议检查以下几点:
我遇到了页边距问题。如果我需要对整个打印区域进行绝对控制,我将打印机边距全部设置为 0,并将页面布局完全定义为打印机格式。
我会尝试定义适合 POS 55m 打印机的页面布局/纸张尺寸。也许 Paper.A6 给您带来麻烦,因为它“超大”。我不是在使用 JavaFX 和打印时遇到这种情况,而是在 Delphi 中使用 Windows GDI 打印。由于驱动层是相同的,所以可能是类似的问题。
这是一个很好的起点来定义布局节点大小,同时牢记打印机点,即 72ppi。只需将像素大小视为打印机点大小。
事实上,我对像这样更简单的代码有很好的体验(抱歉,这是 DIN A5 纸张大小的示例,但有效):
PrinterJob printerJob = PrinterJob.createPrinterJob();
if (printerJob != null) {
PageLayout pageLayout = printerJob.getPrinter().createPageLayout(Paper.A5, PageOrientation.LANDSCAPE, 0, 0, 0, 0);
boolean success = printerJob.printPage(pageLayout, root);
if (success) {
printerJob.endJob();
}
}
添加回答
举报