如何解决在javaFX中使用PrinterJob时如何显示全表?
我的表只有3行5列,在打印时只打印3行,但只有3列。这是我的代码:
private void print(Node node)
Printer printer = Printer.getDefaultPrinter();
PageLayout pageLayout
= printer.createPageLayout(Paper.A4,PageOrientation.PORTRAIT,Printer.MarginType.HARDWARE_MINIMUM);
PrinterJob job = PrinterJob.createPrinterJob();
if (job != null && job.showPrintDialog(node.getScene().getWindow())) {
boolean success = job.printPage(node);
if (success) {
job.endJob();
}
}
这是按钮:
printButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
print(tableView);
}
});
我应该怎么做才能看到所有列?我正在使用旧的hp laserjet专业p1102打印机。
解决方法
JavaFX8 Print API : how to set correctly the Printable area,这是我找到答案的地方。我只需要更改高度:
double scaleX
= pageLayout.getPrintableWidth() / node.getBoundsInParent().getWidth();
double scaleY
= pageLayout.getPrintableHeight() / node.getBoundsInParent().getHeight();
Scale scale = new Scale(scaleX,scaleY)//insted of scaleY i put number 1
所以它不会在整个纸上伸展桌子的高度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。