在 JavaFX 中打印表格视图显示垃圾/其他语言字符

我正在尝试在 JavaFX 应用程序中打印表视图。当我将表格视图直接传递到打印机Job.printPage(表格视图)时,文本数据是其他语言,但视图显示得很好,即屏幕上的英语。


...

final TableView addItemTableView = (TableView) tabAnchorpane.getChildren().get(1);


Printer printer = Printer.getDefaultPrinter();

PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT);

double scaleX = pageLayout.getPrintableWidth() / addItemTableView.getBoundsInParent().getWidth();

Scale scale = new Scale(scaleX, scaleX);

addItemTableView.getTransforms().add(scale);

PrinterJob printerJob = PrinterJob.createPrinterJob();

if (printerJob.showPrintDialog(stage.getOwner()) && printerJob.printPage(pageLayout, addItemTableView)) {

    printerJob.endJob();

}

...

表视图由任务类中的数据填充


public class Task implements Serializable {


    private static final long serialVersionUID = 2L;


    private transient StringProperty description;

    private transient IntegerProperty priority;

    private transient ObjectProperty<LocalDate> dueDate;

    private transient StringProperty status;

    private transient ObjectProperty<LocalDate> startDate;

    private transient ObjectProperty<LocalDate> endDate;

...

}

实际打印页面

预期打印页


慕的地6264312
浏览 67回答 1
1回答

杨魅力

问题似乎出在 JDK 7 上。当我切换到 JDK 10 时,问题已得到解决。打印预览页面按预期以英文显示。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java