Печать TableView в JavaFX отображает ненужные / другие языковые символы - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь напечатать TableView в приложении JavaFX. Когда я передаю 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;
...
}

Фактическая страница печати

Ожидаемая страница печати

1 Ответ

0 голосов
/ 08 апреля 2019

Кажется, проблема связана с JDK 7. Когда я переключился на JDK 10, проблема была решена.Страницы предварительного просмотра печати отображаются на английском языке, как и ожидалось.

...