这是将docx转换为pdf的代码
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is);
FOSettings foSettings = Docx4J.createFOSettings();
foSettings.setWmlPackage(wordMLPackage);
Docx4J.toPDF(wordMLPackage, baos);
这里的问题是,生成的PDF字体始终是Times New Roman,事实并非如此,docx模板字体实际上是不同的,Garamond。
这里可能缺少什么或有什么问题?
最佳答案
如果系统上未安装字体或文档中未嵌入字体,MS Word 会执行静默字体替换。要检查您的文档是否出现这种情况,请在 Word 中打开它,转到 Word 选项 > 高级 > 显示文档内容
,然后按字体替换
按钮。 (Word 2007)
如果该字体嵌入在文档中,或者您的系统上已经安装了该字体,那么我不知道该告诉您什么,因为理想情况下 docx4j 应该使用该字体。
如果情况并非如此,即 Word 正在使用字体替换(您可以使用上述步骤确定),则可以使用 Word 选项 > 保存 > 在文件中嵌入字体在文档中嵌入 Garmond 字体
。运行您的转换程序并再次检查。
关于java - 使用 Docx4j 将 DOCX 转换为 PDF 时保留字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47083619/