在OS X上的JavaFX8上打印会产生垃圾字符

时间:2016-05-24 07:03:03

标签: printing javafx-8

我正在尝试在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();

}

1 个答案:

答案 0 :(得分:1)

我也面临同样的问题但后来意识到Javafx不了解某些字体。因此,必须使用css在我的节点上设置正确的字体,然后打印节点。我建议请检查您尝试打印的节点上设置的字体。