原地址:http://blog.csdn.net/shanelooli/article/details/7212812;http://blog.csdn.net/nantian321/article/details/51200180
使用com.aspose.words将word模板转为PDF文件时,在开发平台window下转换没有问题,中文也不会出现乱码。但是将服务部署在正式服务器(Linux)上,转换出来的PDF中文就出现了乱码。在网上找了很久,才找到原因,现将解决办法分享给大家。
一、问题原因分析 在window下没有问题但是在linux下有问题,就说明不是代码或者输入输出流编码的问题,根本原因是两个平台环境的问题。出现乱码说明linux环境中没有相应的字体以供使用,所以就会导致乱码的出现。将转换无问题的windos主机中的字体拷贝到linux平台下进行安装,重启服务器后转换就不会出现乱码了。
二、window字体复制到linux环境并安装按照教程安装完成后重启linux服务器即可搞定乱码问题。1. From Windows
Windows下字体库的位置为C:\\Windows\\fonts,这里面包含所有windows下可用的字体。
2. To Linux
linux的字体库是 /usr/share/Fonts 。
在该目录下新建一个目录,比如目录名叫 windows(根据个人的喜好,自己理解就行,当然这里是有权限要求的,你可以用sudo来执行)。然后将 windows 字体库中你要的字体文件复制到新建的目录下(只需要复制*.ttc,和*.ttf的文件).
复制所有字体:
sudo cp *.ttc /usr/share/fonts/windows/
sudo cp *.ttf /usr/share/fonts/windows/
更改这些字体库的权限:
sudo chmod 755 /usr/share/fonts/windows/*
然后进入Linux字体库:
cd /usr/share/fonts/windows/
接着根据当前目录下的字体建立scale文件
sudo mkfontscale
接着建立dir文件
sudo mkfontdir
然后运行
sudo fc-cache
重启 Linux 操作系统就可以使用这些字体了。
3. Skills
利用丰富的字体可以完成一些特殊的功能,以尽可能避免应用复杂度。比如标准图形符号字体中的小图片,都可以用来代替同样功能的图标。
例如电话功能、上传功能、留言功能等,都有相应图标,用一个字母就可以简单表示。