为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2022-09-22 19:41:57

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

...

}

实际打印页面

预期打印页


查看完整描述

1 回答

?
杨魅力

TA贡献1509条经验 获得超5个赞

问题似乎出在 JDK 7 上。当我切换到 JDK 10 时,问题已得到解决。打印预览页面按预期以英文显示。


查看完整回答
反对 回复 4天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信