java - 在 JavaFX 中打印 TableView 显示垃圾/其他语言字符
问题描述
我正在尝试在 JavaFX 应用程序中打印 TableView。当我将 TableView 直接传递给 PrinterJob.printPage(TableView) 时,文本数据使用其他语言,但视图显示良好,即屏幕上的英文。
...
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();
}
...
TableView 填充了来自 Task 类的数据
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;
...
}
解决方案
问题似乎出在 JDK 7 上。当我切换到 JDK 10 时,问题就解决了。打印预览页面按预期以英文显示。
推荐阅读
- android - 数字资产链接验证偶尔会失败。无法描绘出任何失败的模式
- python - 如何使用 xarray 中的维度和数据来创建新的数据数组?
- sql - 在 IF 子句中使用 `when` 和 `in`
- windows - kubernetes集群添加windows节点
- python - Twine 上传到 Artifacts Feed 失败
- r - 为什么我没有在 R 中的 case_when 的新列中获得我想要的类别?
- powerbi - 显示世界国家的地图文件,其中包含 Mapbox 和 Power BI 的美国州详细信息
- swift - .gitignore 文件似乎不起作用,但仍显示 Xcode 文件
- css - 使用 Angular 删除引号 Json
- message-queue - 一个消息主题可以订阅另一个主题吗?