zou_yw
1
我們使用中遇到了一個問題:
用apose.word 处理文档时,中文全角字符的双引号出现字体回退的情况,用pmingliu字体回退到times new roman;
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>24.11</version>
<classifier>jdk17</classifier>
</dependency>
public static Document streamToDocument(InputStream ins) {
try {
Document document = new Document(ins);
document.setWarningCallback((info) -> {
logger.warn("Aspose warning: type={}, desc={}", WarningType.getNames(info.getWarningType()), info.getDescription());
});
return document;
} catch (Exception e) {
logger.warn("加載文件失敗", e);
return null;
}
}
附件是输入文档以及字体;
I.zip (8.5 MB)
@zou_yw
你在使用 Aspose.Words 处理包含中文全角双引号的文档时,遇到了 ‘pmingliu’ 字体回退到 ‘Times New Roman’ 的问题 。这通常是因为文档中使用的字符在 ‘pmingliu’ 字体中不可用,导致 Aspose 自动选择了备用字体 。
你可以通过配置字体替换规则来避免这种回退行为。虽然 Aspose 提供了 FontConfig 类用于设置字体替代方案 ,但目前没有明确的 API 可以统一为所有亚洲字符设置回退字体 。因此,当前的解决方案可能需要针对特定字体进行配置。
你已设置了警告回调,可用于捕获字体替换相关的信息 。若要解决此问题,建议检查并调整字体替换策略,确保文档中的字符能正确渲染。如果问题持续存在,可提供更多细节以便进一步排查。
@zou_yw 您能否更详细地描述一下问题?您转换文档后,问题是否出现在输出结果中?如果是,能否请您将有问题的输出文档附在这里,以便我们参考?
zou_yw
4
转换后.zip (44.7 KB)
@alexey.noskov 我們會用apose里的一些功能對word進行加工,比如說插入圖片等等一些操作,在還沒有做這些加工操作之前。單純將word文檔轉為符合apose.word格式的時候,就發現出現了這種字體回退的情況。
附件是输出文档
@zou_yw 感谢您提供的更多信息。遗憾的是,我使用最新版 Aspose.Words for Java 25.12 和以下简单代码无法重现您遇到的问题:
Document doc = new Document("C:\\Temp\\in.doc");
doc.save("C:\\Temp\\out.doc");
以下是我这边生成的输出结果: out.zip (2.8 KB)
能否提供一段简单的代码,以便我们重现该问题?
zou_yw
7
test2(1).zip (665 Bytes)
@alexey.noskov 您好,麻烦您在测试一下这份文档应该会还原问题:两份 Word 文档在视觉上字体一致,
但在 Run 级别的字体绑定方式不同。
@zou_yw
我们已在内部问题跟踪系统中创建了以下新工单,并将根据 免费支持政策 中提到的条款交付其修复。
问题 ID:WORDSNET-29009
如果您需要优先支持并直接联系付费支持管理团队,可以使用 付费支持服务。