Java, как изменить шрифт в конвертере pdf - pdfbox - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема.Я создаю приложение JavaFX для управления базой данных.Я решил преобразовать данные из таблицы в PDF.Для этого я использовал pdfbox.Я не могу изменить шрифт в моем конвертере pdf.Как это можно сделать?Потому что helvetica не поддерживает UTF-8 (ą, ę, ź ...).

enter code here public enum Orientation{
    PORTRAIT, LANDSCAPE
};

public boolean doPrintToPdf(List<List> list, File saveLoc,Orientation orientation) {
    try {
        if (saveLoc == null) {
            return false;
        }
        if (!saveLoc.getName().endsWith(".pdf")) {
            saveLoc = new File(saveLoc.getAbsoluteFile() + ".pdf");
        }
        //Inicjalizacja dokumentu
        PDDocument doc = new PDDocument();
        PDPage page = new PDPage();

        if (orientation == Orientation.LANDSCAPE) {
            page.setMediaBox(new PDRectangle(PDRectangle.A4.getHeight(), PDRectangle.A4.getWidth()));
        } else {
            page.setMediaBox(new PDRectangle(PDRectangle.A4.getWidth(), PDRectangle.A4.getHeight()));
        }

        doc.addPage(page);
        float margin = 10;
        float tableWidth = page.getMediaBox().getWidth() - (2 * margin);
        float yStartNewPage = page.getMediaBox().getHeight() - (2 * margin);
        float yStart = yStartNewPage;
        float bottomMargin = 0;

        BaseTable dataTable = new BaseTable(yStart, yStartNewPage, bottomMargin, tableWidth, margin, doc, page, true,
                true);
        DataTable t = new DataTable(dataTable, page);
        t.addListToTable(list, DataTable.HASHEADER);
        dataTable.draw();
        doc.save(saveLoc);
        doc.close();

        return true;
    } catch (IOException e) {
        DialogsUtils.errorDialog(e.getMessage());
    }
    return false;
...