JPGRAPH中文字体解决
时间:2008-01-21 来源:yuyii
问题针对版本:JPGRAPH 2.2
首先关于中文(这里只说简体,繁体是FF_CHINESE),JPGRAPH中只要使用FF_SIMSUN参数就可以解决。
例:$graph->title->SetFont(FF_SIMSUN,FS_BOLD,11);
图片的标题用中文就能解决。针对的文件类型是普通的ANSI类型。就是说当ANSI类型中出现中文,代码就会将中文转换到UTF8。
但现在有一特殊问题,即,写入数据库时是UTF8写入的。取出当然也是UTF8,那么UTF8的中文理所当然的不再需要转换了,但使用FF_SIMSUN还会去转,因为我文件类型仍然是ANSI。这样我通过修改源代码增加了一种不转换的中文:
文件:jpgraph_ttf.inc.php
27行左右
// Chinese font
DEFINE(”FF_SIMSUN”,30);
DEFINE(”FF_SIMSUN_UTF8″,32); //声明该常量,注意数字上使用不同的就可以了
DEFINE(”FF_CHINESE”,31);
DEFINE(”FF_BIG5″,31);
100行左右:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
if( $this->g2312 == null ) {
include_once ‘jpgraph_gb2312.php’ ;
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
}
/* already be utf8(chinese simply) no convert */
elseif ( $aFF === FF_SIMSUN_UTF8 ){
return $aTxt;
}
/***************/
elseif( $aFF === FF_CHINESE ) {
行246左右:
/* Chinese fonts */
FF_SIMSUN => array(FS_NORMAL =>’simsun.ttc’,
FS_BOLD =>’simhei.ttf’,
FS_ITALIC =>”,
FS_BOLDITALIC =>” ),
//add the font define,same as SIMSUN
FF_SIMSUN_UTF8 => array(FS_NORMAL =>’simsun.ttc’,
FS_BOLD =>’simhei.ttf’,
FS_ITALIC =>”,
FS_BOLDITALIC =>” ),
FF_CHINESE => array(FS_NORMAL =>CHINESE_TTF_FONT,
FS_BOLD =>”,
FS_ITALIC =>”,
FS_BOLDITALIC =>” ),
添加完后,如果想要调用UTF8的中文,就可以直接用FF_SIMSUN_UTF8来设定了。方便~~
相关阅读 更多 +
排行榜 更多 +