版本:23.8
编程语言:java
问题现象:
doc文件,使用了GB2312字体,转换为PDF后,部分字体无法显示;
源doc文件:
20240319-已审-LZ-河南待审合同业务约定书(1)(1).zip (6.9 KB)
转换后的PDF文件:
转换后的PDF文件.zip (50.4 KB)
问题截图(数字【2022】、【2023】无法显示):
image.png (92.0 KB)
版本:23.8
编程语言:java
问题现象:
doc文件,使用了GB2312字体,转换为PDF后,部分字体无法显示;
源doc文件:
20240319-已审-LZ-河南待审合同业务约定书(1)(1).zip (6.9 KB)
转换后的PDF文件:
转换后的PDF文件.zip (50.4 KB)
问题截图(数字【2022】、【2023】无法显示):
image.png (92.0 KB)
@ZhonghaoSun 下面是我使用最新 Aspose.Words 版本的结果文件。
Output.pdf (33.2 KB)
请检查字体替换警告:
public void testDigit() throws Exception {
Document doc = new Document("Input.doc");
SubstitutionWarnings substitutionWarnings = new SubstitutionWarnings();
doc.setWarningCallback(substitutionWarnings);
doc.save("Output.pdf");
Iterator<WarningInfo> warnings = substitutionWarnings.FontWarnings.iterator();
while (warnings.hasNext())
System.out.println(warnings.next().getDescription());
}
public static class SubstitutionWarnings implements IWarningCallback {
public void warning(WarningInfo info)
{
// We are only interested in fonts being substituted.
if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
FontWarnings.warning(info);
}
public WarningInfoCollection FontWarnings = new WarningInfoCollection();
}
我这边使用了您提供的代码,转换源doc文件,并没有输出任何信息。
如果是和字体相关,请问有什么排查方向嘛。
@ZhonghaoSun 请分享您的文件字体:
Document doc = new Document("Input.doc");
FontInfoCollection fonts = doc.getFontInfos();
for (FontInfo font : fonts)
System.out.println(font.getName());
这些都是我这边的:
Times New Roman
Symbol
Arial
宋体
仿宋_GB2312
Courier New
方正宋黑简体
等线 Light
等线
Cambria Math
此外,如果通过浏览器打开 PDF 文件,数字看起来并不是文本。你是使用简单的 DOC 到 PDF 转换,还是使用了某些保存选项?