有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javafx Java如何在转换器pdf pdfbox中更改字体

我有个问题。我为数据库创建应用程序JavaFX管理。我决定将数据从tableview转换为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;

共 (0) 个答案