使用Aspose.word DOC转PDF文件乱码问题-Doc文件

使用Aspose.word DOC转PDF文件乱码问题-Doc文件

描述:最近在项目中使用Aspose.word将word转pdf时出现中文乱码问题,在window平台下转换没有问题,中文也不会出现乱码。但是将服务部署在服务器linux上,转换出来的PDF中文就出现了乱码,变成一个个的小方格,小编进行远程调试后发现,在生成word文件的时候没有发生乱码,而是从DOC文件转换成PDF时就会发送乱码,对此在这里记录一下解决方案。

原因:在window下没有问题但是在linux下有问题,就说明不是代码或者输入输出流编码的问题,根本原因是两个平台环境的问题。出现乱码说明linux环境中没有相应的字体以供使用,所以就会导致乱码的出现。将转换无问题的windos主机中的字体拷贝到linux平台下进行安装,重启服务器后转换就不会出现乱码了。

解决方法:将windows中的常用字体(选择显示的)放到Linux服务器上。window上的字体在”C:\Windows\Fonts“目录下,linux的字体库是 /usr/share/fonts 。如果没有大家可以创建一个。

1、如果没有目录,可以使用下面命令

# mkdir /usr/share/fonts

2、在该目录下新建一个目录,比如目录名叫 windows(根据个人的喜好,自己理解就行,当然这里是有权限要求的,你可以用sudo来执行)。

# mkdir /usr/share/fonts/windows

3、然后将 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

注:如果没有mkfontscale这个命令,可以使用”yum install mkfontscale“获取

接着建立dir文件

# mkfontdir

然后运行

# fc-cache (如果命令不存在,直接重启就可以了)

推荐阅读