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

标签 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。

这里可能缺少什么或有什么问题?

最佳答案

如果系统上未安装字体或文档中未嵌入字体,MS Word 会执行静默字体替换。要检查您的文档是否出现这种情况,请在 Word 中打开它,转到 Word 选项 > 高级 > 显示文档内容,然后按字体替换 按钮。 (Word 2007)

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

如果情况并非如此,即 Word 正在使用字体替换(您可以使用上述步骤确定),则可以使用 Word 选项 > 保存 > 在文件中嵌入字体在文档中嵌入 Garmond 字体。运行您的转换程序并再次检查。

关于java - 使用 Docx4j 将 DOCX 转换为 PDF 时保留字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47083619/

相关文章:

css - 字体未以并行加载的样式加载

java - 如何摆脱 iText XMLWorker 中的 Helvetica?

r - ggplot pdf中的嵌入式字体

java - 当我尝试在 tomcat 8 中部署时,JsonIgnore 注释不起作用

java - 如何使用具有多种响应类型的 RestTemplate?

pdf - 如何创建和下载 PDF,但 CakePdf 不在浏览器中显示

php - 如何在 PHP 中检查 PDF 文件是否受密码保护

Java 图形用户界面组件

java - GWT - 如何组织项目以拥有多个网页和它们之间的导航

ios - Swift - 导入后图像质量下降