首先说下原因哈。这个其实比较简单,默认的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的话,它会读取不到字体文件,转而读取系统上的默认字体。也就是说,仍然会是乱码。
即然它会读取默认字体,那我们还不如直接安装呢,省的手抖了少个/还得去重新折腾。
sudo mkfontscale
该命令执行完之后可以发现在当前目录下生成了一个名为 fonts.scale 的文本文件
sudo mkfontdir
该命令执行完之后会在当前目录下生成名为 fonts.dir 的文本文件
sudo fc-cache
6. 使用fc-list进行字体确认。这个命令会输入现在安装的所有字体。当我们看到我们上传的中文字体,再去执行aspose的代码就不会出现乱码了