如题 aspose-words-17.7-android.via.java.jar word转PDF中文乱码查看相关提问说是需要设置字体文件 但是没看到android版本是如何设置字体文文件
@zpswz , 您可以使用以下方法之一指定字体位置:
- FontSettings.setFontsFolder
- FontSettings.setFontsFolders
- FontSettings.setFontsSources
- FontSettings.setFontsSources
例如:
FontSettings.getDefaultInstance().setFontsSources(
new FontSourceBase[] { new SystemFontSource(), new FolderFontSource("path to font folder", true) });
字体文件夹应具有文档中指定的中文字体。
您可以通过检查 WarningType.FONT_SUBSTITUTION
检查是否缺少某些字体:
Document doc = new Document("in.docx");
FontSubstitutionWarningCollector callback = new FontSubstitutionWarningCollector();
doc.setWarningCallback(callback);
doc.save("out.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());
}
}
检查缺少以下字体
1、Times New Roman
2、Consolas
3、Verdana
4、PMingLiU
5、SimSun
6、OCGAPN+MS-Mincho
我要在哪里下载这些字体文件
@zpswz, 这些字体是标准的 Windows 字体。 它们位于 C:\Windows\Fonts 中。
但是,Microsoft 限制了 Windows 之外的字体的使用:Font redistribution FAQ - Typography | Microsoft Learn
目前在android平台上运行转换 因为缺少字体导致中文乱码 如何解决呢
@zpswz, 您的文档似乎使用 3 种中文字体:PMingLiU、SimSun 和 MS Mincho。
要解决乱码中文字符的问题,您有 2 个选项:
- 在安卓上安装 PMingLiU、SimSun 和 MS Mincho 字体。
2.安装一些其他的中文字体。 Aspose.Words 会自动将 PMingLiu、SimSun 和 MS Mincho 替换为这些其他中文字体。
在 Android 上安装字体后,您需要使用 FontSettings.setFontsSources 让 Aspose.Words 知道字体的位置,如上所示。
如果还有问题,请分享:
- 显示问题的最小 Java 项目。
- 显示问题的 Word 文档
- 安卓版本信息
- Android 设备上安装的字体列表。