aspose工具word转pdf文件,在linux服务器上出现内容乱码问题

1、先看问题的出现:

  功能是这样滴:上传一个word文件,然后把word文件转成pdf,保存在服务器上,然后打开服务器上的pdf文件地址,在线查看文件出现内容乱码,如下:

 

 

 

  2、解决在Linux上word转pdf时出现乱码问题:

    看了其他乱七八糟的博客,就用他的解决了这个问题:https://blog.csdn.net/chengxuxuan/article/details/122827866?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122827866-blog-64905214.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122827866-blog-64905214.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=1

 

    主要就是 在linux上要使用windows的字体。

    第一步:把windows系统上的fonts文件上传到 linux服务器上的/usr/share/fonts目录里,如果没有/usr/share/fonts目录,就自己创建一个

      windows的fonts所在地址:C盘的windows目录的fonts文件夹,480M还真是有点大

 

 

 

  (注意:我的是放在了/usr/share/fonts目录里)

  上传到linux服务器的/usr/share/fonts目录后,使用以下命令,把字段缓存到linux里

上传之后在liunx系统下更改这些字体库的权限:
sudo chmod 755 /usr/share/fonts/*

  

  fc-cache命令用不了的话,安装一下:

 

 

 

  然后一步到味,更新一下字段缓存:

 

 

 

 

    最后一步,要在你的aspose转pdf工具类里,放入下面关键代码:

          【
    //apose在linux服务器上生成pdf,内容乱码问题,解决代码:将windows的字体上传到linux,取linux上的字体列表
                FontSettings fontSettings = FontSettings.getDefaultInstance();
                fontSettings.setFontsFolder("/usr/share/fonts" + File.separator, true);

        】

            String os = System.getProperty("os.name"); //获取当前java运行
            if(os != null && os.toLowerCase().startsWith("windows")){
//                log.info("当前是windows");
            }else if(os != null && os.toLowerCase().startsWith("linux")){ //当前环境:linux系统
//                log.info("当前是linux系统");
                //apose在linux服务器上生成pdf,内容乱码问题,解决代码:将windows的字体上传到linux,取linux上的字体列表
                FontSettings fontSettings = FontSettings.getDefaultInstance();
                fontSettings.setFontsFolder("/usr/share/fonts" + File.separator, true);
            }

 

 

    重新上传一个word文件,成功在linux上转成pdf:

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-10-17 18:00  下课后我要去放牛  阅读(2784)  评论(0编辑  收藏  举报