26 กุมภาพันธ์ 2557

วิธี set ค่า JpGraph ให้เป็นภาษาไทย

 วิธี set ค่า JpGraph ให้เป็นภาษาไทยครับ

1. ก๊อปปี้ ฟอนท์ที่อยู่ในเครื่องของเราที่จะใช้เช่นฟอนท์ cordia, angsana, browallia โดยไปที่ Start->พิมพ์คำว่า font แล้วก็อปปี้ฟอนท์เหล่านั้นไปวาง ที่โฟลเดอร์ fonts ของ jpgraph ครับ

2.เปิดไฟล์ jpgraph_ttf.inc.php ขึ้นมาเพื่อทำการแก้ไข

  
- ค้นหาคำว่า  define('CHINESE_TTF_FONT','bkai00mp.ttf'); แล้วเพิ่มคำสั่งด้านล่างนี้เข้าไป
    
//+ Thai font
define('CORDIA_TTF_FONT', 'cordia.ttf');
define('CORDIAB_TTF_FONT', 'cordiab.ttf');
define('CORDIAI_TTF_FONT', 'cordiai.ttf');
define('CORDIAZ_TTF_FONT', 'cordiaz.ttf');

define('ANGSA_TTF_FONT', 'angsa.ttf');
define('ANGSAB_TTF_FONT', 'angsab.ttf');
define('ANGSAI_TTF_FONT', 'angsai.ttf');
define('ANGSAZ_TTF_FONT', 'angsaz.ttf');

define('BROWA_TTF_FONT', 'browa.ttf');
define('BROWAB_TTF_FONT', 'browab.ttf');
define('BROWAI_TTF_FONT', 'browai.ttf');
define('BROWAZ_TTF_FONT', 'browaz.ttf');


- จากนั้นค้นหาคำว่า /* Chinese fonts */ จะพบกลุ่มคำสั่งประมาณนี้

 /* Chinese fonts */
        FF_SIMSUN  =>  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 =>'' ),
        FF_BIG5  =>   array(
            FS_NORMAL =>CHINESE_TTF_FONT,
            FS_BOLD =>'',
            FS_ITALIC =>'',
            FS_BOLDITALIC =>'' ), 


- เพิ่มคำสั่งด้านล่างนี้ ต่อจากที่ค้นหาเจอ

/* Thai fonts */
        FF_CORDIA => array(
            FS_NORMAL=>CORDIA_TTF_FONT,
            FS_BOLD=>CORDIAB_TTF_FONT,
            FS_ITALIC=>CORDIAI_TTF_FONT,
            FS_BOLDITALIC=>CORDIAZ_TTF_FONT ),       
        FF_ANGSA => array(
            FS_NORMAL=>ANGSA_TTF_FONT,
            FS_BOLD=>ANGSAB_TTF_FONT,
            FS_ITALIC=>ANGSAI_TTF_FONT,
            FS_BOLDITALIC=>ANGSAZ_TTF_FONT ),       
        FF_BROWA => array(
            FS_NORMAL=>BROWA_TTF_FONT,
            FS_BOLD=>BROWAB_TTF_FONT,
            FS_ITALIC=>BROWAI_TTF_FONT,
            FS_BOLDITALIC=>BROWAZ_TTF_FONT ),


- ค้นหาคำว่า define("FF_DV_SANSSERIFCOND",51); แล้วเพิ่มคำสั่งด้านล่างนี้ต่อ


 //thai font
define("FF_ANGSA",52);
define("FF_CORDIA",53);
define("FF_BROWA",54); 


ตัวเลขที่อยู่ด้านหลังอาจจะไม่ตรงกันครับ เช่น คำที่ค้นหา มันเป็นค่า 51 คำสั่งที่เพิ่มเข้าไปเลยต้องต่อเป็น 52 53 54 เพราะฉะนั้นก็เปลี่ยนตามค่าที่ค้นหาเจอจาก FF_DV_SANSSERIFCOND เลยครับ

หลังจากนั้น ในขั้นตอนการใช้งานเราก็เขียนประมาณนี้ เช่น

$graph->title->SetFont(FF_CORDIA,FS_BOLD,20);

เพื่อให้ Title มีฟอนท์เป็น cordia ตัวหนา ขนาดอักษร 20 

$graph->legend->SetFont(FF_ANGSA,FS_NORMAL,16);

เพื่อให้ Legend มีฟอนท์เป็น angsana ตัวธรรมดา ขนาดอักษร 16 

ครับ

  

ไม่มีความคิดเห็น:

แสดงความคิดเห็น