如何使用Docx4J

时间:2016-05-09 05:50:17

标签: java docx4j

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

如果你可以提供一些关于如何设置字体属性的链接会更好,如字体大小,字体系列等,如果有适合的话。

我在线搜索但无法找到任何帮助。等待你的回复。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您必须将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?