Linux下Apose由Word转PDF后乱码问题解决

Linux下Apose由Word转PDF后乱码问题解决

文章目录

  • Linux下Apose由Word转PDF后乱码问题解决
  • [1. 问题描述](#1. 问题描述)
  • [2. 问题原因](#2. 问题原因)
  • [3. 解决方法](#3. 解决方法)
    • [1. 拷贝Windows中的字体库](#1. 拷贝Windows中的字体库)
    • [2. 在Linux中安装字体库](#2. 在Linux中安装字体库)
  • [4. 常见问题](#4. 常见问题)
      • [1. Ubuntu环境下使用如下命令安装:](#1. Ubuntu环境下使用如下命令安装:)
      • [2. Centos环境下使用如下命令安装](#2. Centos环境下使用如下命令安装)

1. 问题描述

在Ubuntu与Centos中使用aspose插件由word转换为PDF时中文显示乱码,但是在windows中转换后PDF有中文时显示正常

2. 问题原因

Ubuntu或Centos中缺少对应的中文字体库导致中文出现乱码

3. 解决方法

1. 拷贝Windows中的字体库

将Windows的字体库拷贝到Linux中,这里以win10字体库为例进行安装

  1. 将Windows10 系统中的 "C:\Windows\Fonts"中的Fonts目录拷贝(大约540MB)一份上传到Linux系统中
  2. 上传到Linux的目录如"/opt/winFonts"

2. 在Linux中安装字体库

  • 查看Linux中的所有字体
shell 复制代码
# 查看Linux中的所有字体库
fc-list
# 查看Linux中的中文字体库
fc-list :lang=zh
  • 拷贝与安装字体库
shell 复制代码
# 1. 在/usr/share/fonts新建 winFonts 目录
cd /usr/share/fonts
sudo mkdir winFonts
# 2. 拷贝从Windows上传的字体库到  /usr/share/fonts/winFonts
sudo cp /opt/winFonts/* /usr/share/fonts/winFonts
# 3.执行安装
cd /usr/share/fonts
# 然后执行以下命令更新字体缓存。
sudo mkfontscale
sudo mkfontdir 
sudo fc-cache -fv

在centos7中执行fc-cache -fv 看到下面内容说明字体安装成功

shell 复制代码
[root@localhost fonts]# fc-cache -fv
/usr/share/fonts: 正在生成缓存,新增缓存内容:0 个字体,7 个目录
/usr/share/fonts/default: 正在生成缓存,新增缓存内容:0 个字体,2 个目录
/usr/share/fonts/default/Type1: 正在生成缓存,新增缓存内容:35 个字体,0 个目录
/usr/share/fonts/default/ghostscript: 正在生成缓存,新增缓存内容:4 个字体,0 个目录
/usr/share/fonts/dejavu: 正在生成缓存,新增缓存内容:9 个字体,0 个目录
/usr/share/fonts/fontawesome: 正在生成缓存,新增缓存内容:2 个字体,0 个目录
/usr/share/fonts/liberation: 正在生成缓存,新增缓存内容:8 个字体,0 个目录
/usr/share/fonts/open-sans: 正在生成缓存,新增缓存内容:10 个字体,0 个目录
/usr/share/fonts/overpass: 正在生成缓存,新增缓存内容:8 个字体,0 个目录
/usr/share/fonts/winFonts: 正在生成缓存,新增缓存内容:1045 个字体,0 个目录
/usr/share/X11/fonts/Type1: 正在生成缓存,新增缓存内容:13 个字体,0 个目录
/usr/share/X11/fonts/TTF: 跳过,无此目录
/usr/local/share/fonts: 跳过,无此目录
/root/.local/share/fonts: 跳过,无此目录
/root/.fonts: 跳过,无此目录
/usr/share/fonts/default: 跳过,探测到循环目录
/usr/share/fonts/dejavu: 跳过,探测到循环目录
/usr/share/fonts/fontawesome: 跳过,探测到循环目录
/usr/share/fonts/liberation: 跳过,探测到循环目录
/usr/share/fonts/open-sans: 跳过,探测到循环目录
/usr/share/fonts/overpass: 跳过,探测到循环目录
/usr/share/fonts/winFonts: 跳过,探测到循环目录
/usr/share/fonts/default/Type1: 跳过,探测到循环目录
/usr/share/fonts/default/ghostscript: 跳过,探测到循环目录
/usr/lib/fontconfig/cache: cleaning cache directory
/root/.cache/fontconfig: not cleaning non-existent cache directory
/root/.fontconfig: not cleaning non-existent cache directory
/usr/bin/fc-cache-64: 缓存生成成功
[root@localhost fonts]# source /etc/profile
  • 执行下面命令让字体库生效
shell 复制代码
source /etc/profile
  • 如果安装失败,可以考虑修改字体权限
shell 复制代码
chmod 755 *.ttf
  • 注意:字体安装后必须重启Linux上的Tomcat或Spring boot或其他应用,否则还是不生效

4. 常见问题

执行 sudo mkfontscale 提示 mkfontscale: command not found

1. Ubuntu环境下使用如下命令安装:

shell 复制代码
# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install ttf-mscorefonts-installer
# 使fc-cache命令正常运行
sudo apt-get install fontconfig

在Ubuntu无法联网的情况下,安装rpm命令安装包:因为有依赖关系,顺序如下

shell 复制代码
1.libfontenc-1.1.3-3.amzn2.0.2.x86_64.rpm
2.libXfont-1.5.2-1.amzn2.0.2.x86_64.rpm
3.xorg-x11-font-utils-7.5-20.amzn2.0.2.x86_64.rpm
4.fontpackages-filesystem-1.44-8.amzn2.noarch.rpm
5.stix-fonts-1.1.0-5.amzn2.noarch.rpm
6.fontconfig-2.10.95-11.amzn2.0.2.x86_64.rpm

2. Centos环境下使用如下命令安装

shell 复制代码
# 使mkfontscale和mkfontdir命令正常运行
yum install mkfontscale 
# 使fc-cache命令正常运行。如果提示 fc-cache: command not found
yum install fontconfig
相关推荐
gywl29 分钟前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
日记跟新中2 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
码农君莫笑2 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
BUG 4042 小时前
Linux——Shell
linux·运维·服务器
旭东怪2 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
大霞上仙3 小时前
Linux 多命令执行
linux·运维·服务器
晨欣3 小时前
Kibana:LINUX_X86_64 和 DEB_X86_64两种可选下载方式的区别
linux·运维·服务器
AI青年志3 小时前
【服务器】linux服务器管理员查看用户使用内存情况
linux·运维·服务器
dessler4 小时前
Docker-run命令详细讲解
linux·运维·后端·docker
PyAIGCMaster4 小时前
ubuntu装P104驱动
linux·运维·ubuntu