我正在尝试在OS X(Yosemite)上使用JavaFX8中的内置节点打印功能。我正在使用下面的简单代码来尝试打印一些东西。但它只会在打印纸上产生垃圾字符。我缺少什么想法?
打印机配置正确,因为我可以正常打印其他文本文件,PDF等。
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println(Printer.getDefaultPrinter().getName());
VBox v = new VBox();
v.setPrefSize(200,200);
Label r1 = new Label("Row 1");
Label r2 = new Label("Row 2");
v.getChildren().addAll(r1, r2);
primaryStage.setScene(new Scene(v));
primaryStage.show();
final PrinterJob printerJob = PrinterJob.createPrinterJob();
printerJob.jobStatusProperty().addListener((observable, oldValue, status) -> {
System.out.println(status);
});
final boolean b = printerJob.printPage(v);
if (b)
printerJob.endJob();
}
答案 0 :(得分:1)
我也面临同样的问题但后来意识到Javafx不了解某些字体。因此,必须使用css在我的节点上设置正确的字体,然后打印节点。我建议请检查您尝试打印的节点上设置的字体。