pico hosting ผู้ให้บริการ Web hosting จดโดเมนราคาประหยัด  

บทความ: การแก้ไขให้ PrestaShop (V1.0RC5) แสดง Invoice เป็นภาษาไทย


PrestaShop ใช้ FPDF ซึ่งเป็น PHP script สำหรับสร้างไฟล์ PDF ด้วย PHP แต่ FPDF นั้นยังไม่มีภาษาไทยมาให้ เราจึงจำเป็นต้องเข้าไปเพิ่มภาษาไทยเอง และสำหรับการแก้ไขให้ PrestaShop แสดง Invoice เป็นภาษาไทยได้นั้น ต้องเพิ่ม Font ที่เป็นภาษาไทยเข้าไป และต้องไปแก้ไข code ในไฟล์ classes/PDF.php ด้วย สำหรับตัวอย่างนี้ผมจะใช้ font ของ AngsanaNew, AngsanaNew-Bold ทำให้ดูเป็นตัวอย่าง

ขั้นตอนการแก้ไข
  • - ดาวน์โหลดไฟล์ fpdf-angsana.zip แล้วแตกไฟล์ออกมา จะได้ไฟล์ 4 ไฟล์คือ angsa.php, angsa.z, angsab.php, angsb.z ให้อัพโหลดไฟล์ดังกล่าวไปไว้ที่ directory /tools/fpdf/font
  • - ต่อไปก็เข้าไปแก้ไขไฟล์ /classes/PDF.php โดยให้ค้นหาข้อความ $pdf = new PDF('P', 'mm', 'A4'); แล้วเพิ่ม
    $pdf->AddFont('angsa','','angsa.php');
    $pdf->AddFont('angsa','B','angsab.php');
    เข้าไปในบรรทัดถัดไป
  • - เนื่องจากฟอนต์ของ Angsna มันมีขนาดที่เล็กกว่าฟอนต์ที่ PrestaShop กำหนดมา เราจึงต้องเข้าไปกำหนดขนาดของ Font ใหม่ โดยให้ค้นห้า $pdf->SetFont(self::fontname(), '', xx); ในไฟล์ /class/PDF.php แล้วแก้ขนาดของตัวอักษรตามที่เราต้องการ เช่นต้องการใช้ขนาดตัวอักษรเป็น 16 ก็แก้เป็น $pdf->SetFont(self::fontname(), '', 16); ครับ
  • - หลังจากนั้นให้เข้าไปตั้งค่าใน Back office->Preferences->PDF ดังรูป
เมื่อแก้ไขเรียบร้อยแล้วก็เข้าไปทดสอบ Invoice ที่สร้างได้จาก Back office->Orders แล้วคลิ๊กที่รูป PDF เพื่อดูไฟล์ pdf ครับ ถ้าไม่มีอะไรผิดพลาด Invoice ก็จะแสดงภาษาไทยได้ถูกต้อง

สำหรับใครที่ต้องการใช้ Font อื่นนอกเหนือจาก Angsana แล้ว สามารถดาวน์โหลด ttf2pt1.sourceforge.net มาแปลง Font ได้ตามต้องการครับ ถ้ามีเวลาเดี๋ยวจะมาอธิบายวิธีการแปลง Font ด้วย ttf2pt1 ให้อ่านกันอีกทีครับ

หมายเหตุ: วิธีนี้ทดสอบกับ PrestaShop V1.0RC5 นะครับ

ใครที่นำบทความไปเผยแพร่ที่เว็บไซต์อื่น กรุณาทำลิ้งค์กลับมายังบทความต้นฉบับด้วยนะครับ