• 解决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});
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    另外有一点要注意:**路径结尾必须带分隔符!!!**
    
    • 1

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

    安装中文字体

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

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

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

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

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

    1. 构建字体信息缓存文件
    sudo fc-cache
    
    • 1
    6. 使用fc-list进行字体确认。这个命令会输入现在安装的所有字体。当我们看到我们上传的中文字体,再去执行aspose的代码就不会出现乱码了
    
    • 1
  • 相关阅读:
    Pythonmock基本使用
    前后端分离项目Nginx部署
    C++课程设计——图书管理系统
    【Leetcode】758. Bold Words in String
    【八】http服务器开发--实现一个http服务器
    软件项目管理 7.1.项目进度基本概念
    深入React源码揭开渲染更新流程的面纱
    硅谷华人天才CEO被开除,是否会有奇迹发生?
    敏捷与xjbg的细微差别
    RecycleView的一些使用
  • 原文地址:https://blog.csdn.net/chenpengjia006/article/details/125886953