php-export-pdf-ภาษาไทย-3

แปลง html เป็น pdf รองรับภาษาไทย ด้วย mPdf และ codeigniter

แปลง html เป็น pdf รองรับภาษาไทย ด้วย mPdf และ codeigniter



แปลง html เป็น pdf รองรับภาษาไทย ด้วย mPdf และ codeigniter

ในการพัฒนา web application อีกหนึ่งโจทย์สำคัญที่เรามักจะได้รับจากลูกค้าคือการทำรายงานข้อมูลในรูปแบบไฟล์ PDF บางเว็บไซต์ อาจจะต้องนำออกข้อมูลทั้งในส่วน Back-End และ Front-End และปัญหาที่เรามักจะพบเจออยู่บ่อย ๆ คือการจัดการกับรูปแบบไฟล์ pdf ที่เป็น Dynamic Content เนื้อหาภายในมีการปรับปรุงเปลี่ยนแปลงอยู่เรื่อย ๆ เช่น การออกใบหักภาษี ณ ที่จ่าย การออกใบเสร็จรับเงิน เป็นต้น



ปัญหาที่มักจะเจอในการ export pdf คือการจัดการกับภาษาไทย หรือการจัดตำแหน่งฟอนต์ที่มักจะไม่ตรงกับตำแหน่งตามที่ออกแบบไว้ เมื่อ export เป็น pdf ไฟล์ โดยหลัก ๆ ในบทความนี้เราจะใช้ความสามารถของ mPDf ซึ่งเป็น php library ที่ถูกพัฒนาขึ้นมาเพื่อ generate PDF file โดยเฉพาะ

สิ่งที่ต้องใช้สำหรับบทความนี้


ดาวน์โหลดและติดตั้ง mPDf

  • 1. เริ่มต้นให้ไปดาวน์โหลด mPDF library ที่ github ตามลิงค์นี้ครับ https://github.com/mpdf/mpdf
  • 2. หลังจากดาวน์โหลดเสร็จแล้วเราจะได้โฟลเด้อชื่อว่า mpdf ให้นำไปวางไว้ใน application/third_party จากนั้นให้สร้างโฟลเด้อตั้งชื่อว่า download กำหนด permission เป็น 777 สำหรับบันทึกไฟล์ image และ pdf


    php-export-pdf-ภาษาไทย

  • 3. จากนั้นให้สร้าง Controller ขึ้นมา ตั้งชื่อว่า Pdf.php ให้ include mPdf เข้ามาใช้งานดังนี้

  • 4. จากนั้นให้สร้าง view ที่เราต้องการจะแปลงเป็น pdf ขึ้นมา ในที่นี้ผู้เขียนต้องการจะ export ใบเสร็จรับเงิน จึงตั้งชื่อไฟล์ว่า receipt_view.php และในไฟล์นี้ได้เขียน html สำหรับแสดงรูปแบบใบเสร็จดังนี้

    ให้สังเกตุว่าในส่วนของ element section จะมีการกำหนดไอดีและตั้งชื่อว่า pdf หมายความว่าข้อมูลที่อยู่ใน section นี้ทั้งหมดจะถูกนำออกในรูปแบบ pdf file



    ตัวอย่างการแสดงผลเมื่อดูผ่าน browser
    php-export-pdf-ภาษาไทย

  • 5. วิธีที่ง่ายที่สุดในการจัดการให้การแสดงผลของ pdf ไม่ผิดเพี้ยนไปจาก html ที่เราออกแบบไว้ คือการแปลง html ให้เป็นรูปภาพก่อน ให้ใช้ความสามารถของ html2canvas.js แปลง html ตั้งแต่ไอดี pdf ให้เป็นรูปก่อน สามารถเขียนคำสั่งได้ดังนี้

  • 6. หลังจากได้รูปภาพแบบ base64 แล้วให้เขียนคำสั่งส่งข้อมูลไปที่ Pdf Controller เพื่อบันทึกรูปและแปลงเป็น PDf ตามลำดัง

  • 7. ใน Pdf Controller ให้เขียนคำสั่งเพื่อบันทึกรูปและแปลงเป็น pdf ด้วย mPdf ดังนี้

  • 8. ที่ไฟล์ receipt_view ให้เรียกใช้งานฟังก์ชั่นสำหรับดาวน์โหลดด pdf ดังนี้

  • 9. ทดสอบการทำงาน โดยการ load receipt_view ที่ index ของ pdf controller ดังนี้


ดาวน์โหลด Examples Source Code


กระทู้ใกล้เคียง

วิธีทำหน้า 404 Page Not Found ใน Codeigniter... วิธีทำหน้า 404 Page Not Found ใน Codeigniter วิธีทำหน้า 404 Page Not Found ใน Codeigniter หน้าเพจ Error 404 หมายความว่าไม่มีหน้าเว็บหรือ url นั้...
วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนป... วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนปริมาณมาก ๆ วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนปริมาณมาก ๆ ถ้าโจทย์คือการทำเว็บไซ...
วิธีทำ Backend ด้วย CRUD Library ด้วยโค๊ดไม่กี่บรร... วิธีทำ Backend ด้วย CRUD Library ด้วยโค๊ดไม่กี่บรรทัด วิธีทำ Backend ด้วย CRUD Library ด้วยโค๊ดไม่กี่บรรทัด CRUD ย่อมาจากคำ 4 คำคือ (Create, Rea...
รวม PHP Utils ฟังก์ชั่นอรรถประโยชน์ที่ใช้งานบ่อย... รวม PHP Utils ฟังก์ชั่นอรรถประโยชน์ที่ใช้งานบ่อย รวม PHP Utils ฟังก์ชั่นอรรถประโยชน์ที่ใช้งานบ่อย สำหรับคนทำเว็บไซต์ แน่นอนว่าจะต้องมีฟังก์ชั่นบ...