服务器字体匹配问题

我现在linux服务器上配置了字体替换规则,然后java代码里没有任何设置,我的运行条件是:服务器上只有IPAexMincho和IPAexGothic这2中字体,我现在客户端用MS ゴシック做了一个excel模板,当我用

SvgSaveOptions svgSaveOptions = new SvgSaveOptions();
svgSaveOptions.setSheetIndex(i);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
excel.save(byteArrayOutputStream, svgSaveOptions);
String tempVal = new String(byteArrayOutputStream.toByteArray());

这段代码转换excel的时候,为什么出去的字体是IPAexMincho 而不是我设置的转换规则的IPAexGothic

@jishangyang
Aspose.Cells APIs搜索操作系统的默认字体目录以获取所需的字体。如果系统字体目录中没有所需的字体,则API将通过自定义目录进行搜索。当然,你也可以通过FontConfigs.setFontSubstitutes来指定替代字体。

关于如何设置自定义字体目录以及指定替代字体,请参考以下文档。

如果你依然有疑问,请提供你的样例文件,生成的结果文件和可运行的测试代码,我们很快就会检查。

@jishangyang ,

目前还不支持系统fontconfig配置,请在代码中设置类似字体替换:

FontConfigs.setFontSubstitutes("MS ゴシック", new String[] {"IPAexGothic"});

FontConfigs.setFontSubstitutes(“MS ゴシック”, new String[] {“STCaiyun”}); 我现在本地测试全部替换成caiyun字体,但是不生效,我怎么看我有没有替换成功

@jishangyang
请确保字体"STCaiyun"已经安装到机器上。如果字体不能替换成功,可能是由于无法找到安装的字体。你可以通过设置自定义字体文件夹来解决无法找到安装字体的问题。关于如何设置自定义字体文件夹,请参考以下文档。

关于如何查看字体是否替换成功,你可以使用pdf工具找到excel里字体为“MS ゴシック”的文本,查看pdf里文本的显示字体是否已经改变成“STCaiyun”。如果字体替换成功,文本的显示字体会相应改变成“STCaiyun”。