集智平台在linux和windows中字体显示不一致解决办法

最近遇到一个客户提出的问题,客户在报表中设置的字体是宋体,在windows中展现正常,能达到客户需要的效果,但是把应用放到linux中,同样的报表展示的字体的样式就跟windows不一样,不是客户想要的效果。最后检查客户linux的字体发现是客户linux中的宋体版本跟windows中的不一样造成的。所以造成展现的报表里面字的样式不一致。

 

解决办法:同步windows的字体到linux系统中,使二者的字体版本和样式一样,这样展现出来的字体样式就没有区别了。

 

实现步骤:

给linux安装字体的步骤如下(以debain版本的linux为例):

1、首先拷贝字体到系统字体目录下。比如/usr/share/fonts/truetype/hahafonts(hahafonts请自行建立)。
到win下找到你需要的字体,比如拷贝了simhei.ttf simyou.ttf tahoma.ttf verdana.ttf simsun.ttc tahomabd.ttf verdanab.ttf等7款字体
当然,如果想要简单可以只拷simsun,tahoma就行了
cp *.tt* /usr/share/fonts/truetype/hahafonts/
cd /usr/share/fonts/truetype/hahafonts/

2、生成字体的fonts.dir+fonts.scale文件
Debian下:
apt-get install ttmkfdir

ttmkfdir && cp fonts.scale fonts.dir

3、把字体路径加到您的xfree86文件中
比如我的/etc/X11/XF86Config-4
添加:
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID”
FontPath “/usr/share/fonts/truetype/gbk”
FontPath “/usr/share/fonts/truetype/hahafonts”
注意:::其中/usr/share/fonts/truetype/gbk中为其他点阵字体,可以不加。

4、执行fc-cache -v -f
注:fc-cache — build font information cache files

5、firefly补丁:

http://hahaghost.512j.com/linuxbak/fonts.conf替换/etc/fonts/里的fonts.conf文件,然后加上源:

把下面2行加到您的/etc/apt/sources.list里
deb http://debian.okey.net/debian-uo/ sid firefly java marillat rareware misc
deb http://debian.okey.net/debian-fonts/ ./

然后执行apt-get update&&apt-get upgrade就行了。
注:执行apt-get upgrade后,自动升级的有:libfontconfig,libxft,fontconfig都是修改的过的补丁

6. 重启,就可以可以看到比较合适的字体了
然后xfsfonts | grep gbk
查找您需要的字体,添加到gtkrc或者gtkrc.zh_CN中
其中的gbk是个例子,您可以换成您想要的,比如simsun等。

本文标签: