版本:23.8
编程语言:java
问题截图:
image.png (28.8 KB)
源文件:
源文件.zip (117.4 KB)
@ZhonghaoSun 看起来出现问题的原因是您文档中使用的字体在处理文档的环境中不可用。如果 Aspose.Words 无法找到文档中使用的字体,则会将该字体替换为。由于字体度量标准不同,这可能会导致字体不匹配和文档布局问题。您可以实现 IWarningCallback,以便在执行字体替换时获取通知。
请参阅我们的文档,了解 Aspose.Words 在何处查找字体:
以下是我的输出结果:
output.pdf (84.6 KB)
@vyacheslav.deryushev
不过丢失的【2024】和旁边正常转换的【 4 月 19 日】字体都是微软雅黑。【 4 月 19 日】却能正常显示,
并且试了用格式刷复制格式,【2024】还是会丢失。
@ZhonghaoSun 请使用简化文件和以下代码检查结果:
public void test() throws Exception {
Document doc = new Document("input.doc");
for (FontInfo font : doc.getFontInfos()) {
System.out.println(font.getName());
}
FontSubstitutionWarningCollector callback = new FontSubstitutionWarningCollector();
doc.setWarningCallback(callback);
doc.save("output.pdf");
}
private static class FontSubstitutionWarningCollector implements IWarningCallback {
/// <summary>
/// Called every time a warning occurs during loading/saving.
/// </summary>
public void warning(WarningInfo info) {
if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
System.out.println(info.getDescription());
}
}
input.zip (38.6 KB)
这就是我的结果:
Times New Roman
Symbol
Arial
Microsoft YaHei
方正兰亭黑简体
Calibri
SimSun
DengXian Light
Calibri Light
DengXian
Cambria Math
Font '方正兰亭黑简体' has not been found. Using 'SimHei' font instead. Reason: alternative name from document.
@vyacheslav.deryushev
我们这边的使用input.zip (38.6 KB)
执行结果:
Times New Roman
Symbol
Arial
Microsoft YaHei
方正兰亭黑简体
Calibri
SimSun
DengXian Light
Calibri Light
DengXian
Cambria Math
Font '方正兰亭黑简体' has not been found. Using 'SimHei' font instead. Reason: alternative name from document.
使用异常源文件执行的结果:
源文件.zip (117.4 KB)
Calibri
宋体
Times New Roman
方正兰亭黑简体
微软雅黑
Font '方正兰亭黑简体' has not been found. Using '黑体' font instead. Reason: alternative name from document.