Aspose-words-17.7-android.via.java.jar如何设置字体文文件

如题 aspose-words-17.7-android.via.java.jar word转PDF中文乱码查看相关提问说是需要设置字体文件 但是没看到android版本是如何设置字体文文件

@zpswz , 您可以使用以下方法之一指定字体位置:

例如:

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 个选项:

  1. 在安卓上安装 PMingLiU、SimSun 和 MS Mincho 字体。
    2.安装一些其他的中文字体。 Aspose.Words 会自动将 PMingLiu、SimSun 和 MS Mincho 替换为这些其他中文字体。

在 Android 上安装字体后,您需要使用 FontSettings.setFontsSources 让 Aspose.Words 知道字体的位置,如上所示。

如果还有问题,请分享:

  1. 显示问题的最小 Java 项目。
  2. 显示问题的 Word 文档
  3. 安卓版本信息
  4. Android 设备上安装的字体列表。