如何使用 Docx4J 为 pdf 输出设置字体

How to set a font for pdf output using Docx4J

我正在使用 Docx4J.toPDF(wordMLPackage, new FOS("path/to/file.pdf"))".docx" 文件转换为 ".pdf"。虽然转换进行得很好,但原始文档有 Calibri 字体,生成的 pdf 有 Arial。有没有办法在进行此转换时设置字体。

如果你能提供一些 link 字体属性的一般设置方式,如 字体大小、字体系列 等,如果有的话,那就更好了为此。

我在网上搜索但找不到任何帮助。等待您的回应。谢谢!

我认为您必须将 Calibiri 字体(文件)嵌入到 PDF 中。我也在生成的 PDF 中使用 Calibri,这是我必须做的。我正在使用 PDFe

我不知道如何在 docx4j 中执行此操作,但如果是 iText(我正在使用),我必须像这样注册字体

    FontFactory.registerDirectory("./resources/fonts/", true);
    com.itextpdf.text.Font iFont = FontFactory.getFont(font, getEncodingForFont(font), true);

之后,iFont 自动嵌入到 PDF 中,因此它可以在未安装 Calibri 的系统上正确显示。

这可能与您的问题有关 http://www.docx4java.org/forums/docx-java-f6/embedded-fonts-not-used-in-pdf-conversion-t1137.html

而且似乎已经有一些关于 SO 的内容:How to change font encoding when converting docx -> pdf with docx4j?