jpgraph-1.27.1 กับปัญหาเรื่องการใช้งานภาษาไทย

     จาก Jpgraph ฉบับภาษาไทย ซึ่งยังไม่สามารถใช้ภาษาไทยกับกราฟได้ จึงก่อให้เกิด Jpgraph ฉบับภาษาไทย ภาค 2 (หนีไปใช้ version ที่สูงกว่า เพราะจัดการกับภาษาไทยได้ ง่ายยยยย กว่า)

 แต่ด้วยความที่ยังติดตราตรึงใจ jpgraph-1.27.1 อยู่เพราะว่าเป็นกราฟแรกพบ จึงพยายามปรับจนสามารถใช้ภาษาไทยได้

จนกระทั่งเกิดเป็นภาพแบบนี้ขึ้นมา

สำหรับวิธีปรับให้สามารถใช้ภาษาไทยได้ฉบับผู้สมรู้ร่วมคิด กระทำดังต่อไปนี้
1. ไฟล์ jpgraph.php
1.1 บรรทัดที่  #55
แก้ไขตำแหน่ง folder ที่เก็บ file font เนื่องจากบน server อาจไม่มี font ภาษาไทยที่เราต้องการใช้
#55 //DEFINE('TTF_DIR', $sroot.'/fonts/'); // remark ไว้ไม่ให้ใช้งานบรรทัดนี้
#56 DEFINE('TTF_DIR', 'fonts/'); //แก้ไขที่เก็บ font ภาษาไทย

1.2 บรรทัดที่ #2885
เพิ่ม FF_CORDIA => array(FS_NORMAL=>'CORDIA.TTF', FS_BOLD=>'CORDIAB.TTF', FS_ITALIC=>'CORDIAI.TTF', FS_BOLDITALIC=>'CORDIAZ.TTF' )
เนื่องจากต้องการใช้ font Cordia

2. สร้าง folder "fonts" ไว้ที่ Host แล้ว copy  CORDIA.TTF ไปใส่เก็บไว้

3. ไฟล์ gd_image.inc.php
แก้ไข บรรทัดที่ #21
#21 // thai font เพิ่ม font ภาษาไทย
#22 DEFINE("FF_CORDIA",55); //define ให้ font Cordia อยู่ลำดับที่ 55 หรืออื่นๆ โดยไม่ซ้ำกับ font ลำดับอื่นๆ ที่กำหนดไว้

บรรทัดที่ #51
#49 // Limits for TTF fonts
#50 DEFINE('_FF_FIRST',10);
#51 DEFINE('_FF_LAST',55); //แก้ไขลำดับ LAST ให้เท่ากับหรือมากกว่า ลำดับ ที่ define บรรทัดที่ 22

เสร็จเรียบร้อยสำหรับขั้นตอนการปรับแต่ง

ลำดับต่อไปเป็นการใช้งาน
อาจต้องใช้ iconv() สำหรับตำแหน่งที่ใช้ภาษาไทย

$bplot3->SetLegend(iconv('TIS-620', 'UTF-8','แหล่งทุนภายนอก'));

$graph->legend->SetFont(FF_CORDIA,FS_BOLD,12); //ต้องกำหนดให้ใช้ font Cordia

เป็นอันเสร็จพิธี