Tag Archives: Report

Using Thai font on FPDF

หายไปนานนะครับ ต้องบอกเลยว่าหาเนื้อหามาลงไม่ได้เลยในช่วงที่ผ่านมา นี่ก็โพสแรกของปีก็ว่าได้เดือนเมษาเลยนะ สำหรับช่วงนี้ผมได้มีโอกาสรับงานเกี่ยวกับการทำ PHP Web Application ซึ่งมีฟีเจอร์ต้องทำรายงาน (Report) ให้กับลูกค้าด้วย ก็หาวิธีมาหลายทางจบด้วยวิธีการที่ว่าให้เซิฟเวอร์สร้างรายงานในรูปแบบ PDF ออกมาเลยดีกว่าลูกค้าถึงไม่ปรินท์ก็สามารถบันทึกส่งเป็นเมล์ได้ ซึ่งไลบารี่ที่ใช้คือ FPDF (Free PDF) ซึ่งเป็นไลบารี่ของภาษา PHP เท่านั้นนะครับ

แต่แล้วก็เกิดปัญหาขึ้นคือจำเป็นต้องทำรายงานออกมาเป็นภาษาไทยครับ แต่ FPDF เนี่ยไม่มี font ภาษาไทยมาให้จำเป็นต้องสร้าง font ภาษาไทยขึ้นมาเองครับ ขั้นตอนการสร้าง font นี่ก็ไม่ยากสามารถไปทำตามได้ที่เว็บไซต์ FPDF > Tutorial > Tutorial ที่ 7 ครับ บอกเลยว่าไม่ยากอย่างที่คิด ซึ่งภาษาไทยใช้ cp874 นะครับ (แต่ถ้าขี้เกียจทำตอนท้ายของบทความมีให้ Download ได้ครับ ซึ่งมี THSarabun กับ Tahoma) เมื่อสร้างแล้วการที่จะนำไปใช้เนี่ยก็ง่ายมากครับ อย่างแรกให้ copy ไฟล์ THSarabunNew.php และ THSarabunNew.z ไว้ในโฟลเดอร์ font ของไลบารี่ fpdf จากนั้นเพียงแค่ AddFont เข้าไปก่อนการเรียกใช้ แล้วก็เรียกใช้ได้เลย ตามตัวอย่างโค้ดข้างล่าง แค่นี้ก็สร้างรายงานแบบ PDF ส่งลูกค้าได้แล้วครับ

<?php 
require('fpdf.php'); 

$pdf = new FPDF(); 
// Add Thai font 
$pdf->AddFont('THSarabunNew','','THSarabunNew.php');
$pdf->AddFont('THSarabunNew','B','THSarabunNew_b.php');
$pdf->AddPage();
$pdf->SetFont('THSarabunNew','',16);
$pdf->Cell(40, 10, iconv('UTF-8', 'cp874', 'สวัสดี'));
$pdf->SetFont('THSarabunNew','B',16);
$pdf->Cell(40, 10, iconv('UTF-8', 'cp874', 'สวัสดี'));
$pdf->Output();
?>

Download