这几天折腾惨了,系统上线,客户的数据里有外字,也就是自己造的字,自然是显示不出来的,然后就要求把外字添加到环境里。就为了整这个,我还加了一个通宵。做完后才发现,其实是很简单的,网上资料太多了,当时也被搞得晕头转向。
系统的服务器是Red Hat Enterprise 5,客户端是VISTA。
有两处要显示外字,一是文本显示,二是Java API生成的图片中显示。
文本显示,就跟服务端没啥关系了。
每个客户端添加外字的字符集。把客户的发过来的TTE文件直接拷到VISTA的FONTS文件夹下面,但有一点要注意,如果通过CTRL+C,CTRL+V来拷,拷进去后会报错,原因我也不清楚,估计是WINDOWS的机制。必须在命令行下拷才行。直接拷进去就行了。
图片显示,就跟客户端没啥关系了。
图片是在Linux下的系统里生成的,用到java.awt.Font这个类。实例化的时候它会到JRE里去找字体,如果找不到对应字体,就会显示方框。字体或者字符集的添加,网上有很多很复杂的配置,但我也搜到一个简单的。就是把字体或字符集直接放到JDK的jre/lib/fonts/fallback这个文件夹里,不用任务配置,重启TOMCAT生效。为什么放到jre/lib/fonts/fallback里就生效,我也不知道。
这样,字符集加到了JRE里,但没有加到Linux下。加到Linux下也很简单。
系统全体的话,放到/usr/share/fonts下就行了。
个人用户的话,放到~/.fonts下就行了。
可以用fc-cache -fv清除字库缓存,然后用fc-list查看已安装字体。
这就是客户的外字,画得真不错~~