使用Docx4j将DOCX转换为PDF时保留字体

时间:2017-11-02 19:56:21

标签: java pdf fonts docx docx4j

以下是将 docx 转换为 pdf 的代码

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is);

FOSettings foSettings = Docx4J.createFOSettings();
foSettings.setWmlPackage(wordMLPackage);
Docx4J.toPDF(wordMLPackage, baos);

这里的问题是生成的PDF字体总是 Times New Roman ,情况并非如此,docx模板字体实际上是不同的,Garamond。

这里可能有什么遗漏或错误?

1 个答案:

答案 0 :(得分:0)

如果系统上未安装字体或嵌入文档,则MS Word会执行静默字体替换。要检查文档是否发生这种情况,请在Word中打开,转到Word Options > Advanced > Show Document Content,然后按Font Substitution按钮。 (Word 2007)

如果字体嵌入在文档中,或者您已经在系统上安装了字体,那么我不知道该告诉您什么,因为理想情况下docx4j应该使用该字体。

如果不是这种情况,即Word使用字体替换(您可以使用上述步骤确定),则可以使用Word Options > Save > Embed Fonts in File将Garmond字体嵌入文档中。浏览转换程序并再次检查。