日期:2011-04-20  浏览次数:20424 次


前两天看了这里的一篇帖。。。有JPGRAPH这个东东,觉得它真的非常实用,真的帮我们在图形统计方面省了不少功夫,于是一直在试用,后来看到:
Note: This information is only given here for very advanced users. No free support will ge given in the case you run into difficulties trying to add new fonts. At the moment adding new fonts require code modifications as outlined below.

这里时,我那热情没了一大半。。。。这像我这样的菜鸟就只只能用simsun.ttf吗?后来我试着把很多的中文字体的名字改为simsun.ttf,发现大部分的中文都可以正常显示。。。(可能是全部中文),不敢独享,现把使用方法帖出来跟大家一起分享(我想也许已经有很多高手知道方法,那我就在这里献丑了。。).

在使用有文字显示的类时,必须事先使用SetFont方法来设置字体其有三个参数:字体名,字型,大小。目前在中文方面,JPGraph只支持simsun字体,如果要使用那么就要用以下方法添加:
先在jpgraph.php里用:DEFINE ("TTF_DIR","/usr/local/fonts/ttf/");定义好字体的路径(以后就可以把字体放到这里了)
然后在jpgraph.php里找到这行注释“ // Chinese font ”
在其下面用像这样的方法定义:define("FF_SIMFANG",9);(其中为了容易理解,其格式为:使用“FF_”开头加字体名,“9“为该常量的值,只要不和他原来的值相同,哪个数值都没问题的,只要不太大)

现在进行影射:
找到这个注释"// CONSTRUCTOR"(到这里,聪明的你一定知道怎么回事了),在数组里加入类似:
FF_SIMFANG=>array(FS_NORMAL=>'simfang',FS_BOLD=>'',FS_99vALIC=>'',FS_BOLD99vALIC=>''),的项,该数组是有四个项,第一个为标准字体,第二个为粗体,第三个为斜体,第四个是粗斜体。每一项对应一个字体文件,他们的值就是去了扩展名的字体文件名,没有的话就不用填,除了标准以外。
来到这里,一般的英文字体的添加已经完成,但中文就还是被限制了,关键在以下地方:
找到LanguageConv类,即查找“class LanguageConv”
在函数Convert()里“elseif( $aFF === FF_SIMSUN )”这个地方用或(“||”)添加你之前定义的字体名,如”$aFF===FF_SIMFANG“

好,现在你试试,大功告成!!