We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Word转化为pdf后所有字体发生变化原word中使用的是宋体转化成pdf后变成等线

word转化为pdf后所有字体发生变化原word中使用的是宋体转化成pdf后变成等线,强制设置一次字体后,还是不管用。代码如下

FontSettings fs = new FontSettings();
com.aspose.words.Document doc = new com.aspose.words.Document(outWordPath);
fs.setDefaultFontName("宋体");
fs.setFontsFolder("C:\\Windows\\Fonts", false);
doc.setFontSettings(fs);
doc.save(os, SaveFormat.PDF);

@fengshangben 出现此问题的原因可能是原始文档中使用的字体在执行文档转换的环境中不可用。 要构建文档布局,Aspose.Words 需要文档中使用的字体。 如果 Aspose.Words 找不到文档中使用的字体,字体被替换。 这可能会导致字体不匹配和文档布局差异,并因此返回不正确的页码。 您可以实施 IWarningCallback 以在执行字体替换时获取通知。

另外,能否请您在此处附上您的输入和输出文件以进行测试? 我们将检查问题并为您提供更多信息。

压缩文件中是输入输出文件首页,当xml文件通过字符替换方式替换为对应值后,生成的doc文件没有发现文件,但是当doc文件转化成pdf时,字符格式发生改变,希望能够给加速解决,问题比较着急测试文件.zip (44.6 KB)

我发现是我使用的字体 原因,输入模板使用系统 自带字体没问题,但是使用我新安装的 问题就出现该问题了,改如何指定该字体呢,或者用什么方式解决

@fengshangben 将文档转换为 PDF 后,我看到以下有关字体替换的警告:

Font '方正书宋简体' has not been found. Using 'FZSongS-Extended(SIP)' font instead. Reason: font info substitution.

你能在这里附上这个字体进行测试吗? 由于不同的字体规格,字体替换可能会导致文档布局的差异。

这是我这边根据您的文档生成的 PDF 文档:
out1.pdf (38.8 KB)
out2.pdf (38.2 KB)

您能否附上使用 MS Word 从您的文档生成的 PDF 文档,以便我们了解预期的输出结果。

FangZhengShuSongJianTi.zip (1.6 MB)
fuji附近是使用的字体,请查收

@fengshangben 感谢您提供更多信息。 如我所见,在呈现文档时正确使用了字体: out2.pdf (30.9 KB)

这是我用于测试的代码:

Document doc = new Document("C:\\Temp\\in2.xml");
doc.setFontSettings(new FontSettings());
doc.getFontSettings().setFontsSources(new FontSourceBase[]{new SystemFontSource(), new FolderFontSource("C:\\Temp\\fonts", true)});
doc.setWarningCallback(new FontSubstitutionWarningCollector());
doc.save("C:\\Temp\\out2.pdf");

其中 C"\Temp\fonts 文件夹包含您附加的字体。

另外,我注意到您使用的是旧的 18.5 版本的 Aspose.Words。 我使用最新的23.1版本进行测试。

非常感谢您的指导,按照您的方式我已解决本问题,万分感谢!

1 Like