解决aspose在linux上中文乱码的方法

原因

首先说下原因哈。这个其实比较简单,默认的Linux发行版其实都不会内置中文字体的。而找不到中文字体,乱码或者空白自然也就是正常的了。

解决办法

上传中文字体并手动设置路径

这是一种需要改代码的方式,具体操作就是将Windows字体文件夹(默认是C:\Windows\Fonts字体复制到linux中的文件夹)上传到Linux中,并在代码中指定。
具体方式是:

//word
com.aspose.words.FontSettings.getDefaultInstance().setFontsFolder(fontFolder, false);
//excel
com.aspose.cells.FontConfigs.setFontFolder(fontFolder, false);
//ppt
com.aspose.slides.FontsLoader.loadExternalFonts(new String[]{fontFolder});

另外有一点要注意:路径结尾必须带分隔符!!!

即必须是/data/fonts/这种,如果是写成/data/fonts的话,它会读取不到字体文件,转而读取系统上的默认字体。也就是说,仍然会是乱码。

安装中文字体

​ 即然它会读取默认字体,那我们还不如直接安装呢,省的手抖了少个/还得去重新折腾。

  1. 首先你要有字体文件,ttf或者ttc格式的均可以我们可以从windows的 C:\WINDOWS\Fonts 这个目录下的字体文件复制出来,例如我们得到的字体文件是 segoui.ttf
  2. 将这个字体文件上传到随便一个Linux目录下。例如我们复制到/usr/share/fonts/win这个目录下。
  3. 切换到我们上一步复制的字体所在的目录创建字体索引
sudo mkfontscale

该命令执行完之后可以发现在当前目录下生成了一个名为 fonts.scale 的文本文件

  1. 在目录中创建字体文件的索引
sudo mkfontdir

该命令执行完之后会在当前目录下生成名为 fonts.dir 的文本文件

  1. 构建字体信息缓存文件
sudo fc-cache
  1. 使用fc-list进行字体确认。这个命令会输入现在安装的所有字体。当我们看到我们上传的中文字体,再去执行aspose的代码就不会出现乱码了
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值