Java使用Spire.Pdf或Aspose-Words实现Word转换Pdf在Linux服务器上的中文乱码问题

一、问题产生的背景

当Word文档中含有中文字符时,不管是使用Spire.Pdf或Aspose-Words实现Word转换Pdf,代码的执行都需要调用操作系统的本地字体库支持,否则所有中文字符都将乱码

二、问题原因分析

在Windows环境下没有问题但是在Linux环境下有问题,说明不是代码或者输入输出流编码的问题,根本原因是两个平台环境的问题。出现乱码说明Linux环境中没有相应的字体以供使用

如果你的代码想要在Linux服务器上完美运行,就需要给Linux服务器安装中文字体库

三、解决方案

将转换无问题的Windows主机中的字体拷贝到Linux平台下进行安装,重启服务器后转换就不会出现乱码

Windows字体复制到Linux环境并安装

Windows字体库的位置是C:\Windows\fonts,这里面包含所有Windows下可用的字体

Linux字体库的位置是 /usr/share/Fonts
在该目录下新建一个目录,比如目录名叫 windows,然后将 Windows 字体库中你要的字体文件复制到新建的目录下(只需要复制*.ttc,和*.ttf格式的文件)

cp *.ttc /usr/share/fonts/windows/
cp *.ttf /usr/share/fonts/windows/

更改这些字体库的权限

chmod 755 /usr/share/fonts/windows/*

然后进入Linux字体库

cd /usr/share/fonts/windows/

接着根据当前目录下的字体建立scale文件

mkfontscale

PS:如果提示找不到这个命令,使用:yum install mkfontscale
接着建立dir文件

mkfontdir

PS:如果提示找不到这个命令,使用:yum install fontconfig
然后运行

fc-cache

最后需要重启一次服务器

你可能感兴趣的:(Java技术,java,乱码)