ข้ามไปที่เนื้อหาหลัก

FPDF ภาษาไทย กับ วรรณยุกต์ลอย


สำหรับงานเขียนโปรแกรมเว็บแอพฯ ด้วย PHP ที่ต้องทำการส่งออกข้อมูลเป็นไฟล์เอกสาร PDF นั้น
เมื่อลองค้นดูแล้วก็เจอกับ FPDF เป็นคลาสที่เขียนขึ้นมาสำหรับงานนี้โดยเฉพาะ แต่กับภาษาไทยแล้วก็ต้องเจอกับปัญหาสุดคลาสสิคคือ รองรับภาษาไทยไม่ร้อยเปอร์เซ็นต์ ^^"


บทความที่สอนการใช้งานเบื้องต้นที่ครอบคลุมการทำงานของ FPDF
http://www.select2web.com/category/fpdf

จะมีบทความแนะนำการใช้ฟอนต์ภาษไทยอยู่ที่ลิงค์นี้
http://www.select2web.com/fpdf/fpdf-lesson-10.html


ดาวน์โหลดและสร้างฟอนต์มาใช้เอง
http://witkub.blogspot.com/2011/11/fpdf.html


สำหรับวิธีแก้ไขปัญหาวรรณยุกต์ลอย ลองดูวิธีจากที่นี่
http://punnawatt.blogspot.com/2009/07/pdf.html


สุดท้ายแล้วลองทดลองมาหมด ก็ยังไม่ได้คำตอบที่ตรงใจครับ
เพราะไม่สามารถแก้สระลอยได้อย่างแท้จริง เพราะเงื่อนไขข้อมูลจริงไม่อาจจะทำให้เหมือนในตัวอย่างได้ ก็เลยถอดใจเรื่องวรรณยุกต์ลอย


นอกจากปัญหาเรื่องวรรณยุกต์ลอย แล้วฟอนต์บางตัวก็เกิดปัญหาวรรณยุกต์ซ้อนทับกันด้วย
เช่นคำว่า "นี้" เมื่อผลลัพธ์ออกมา สระอี และวรรณยุกต์โท จะทับกัน


สรุป

1. ดาวน์โหลดฟอนต์ TH Saraban มาใช้งานกับเอกสาร PDF
2. ให้สระลอยบ้างก็สวยงามไปอีกแบบ (มองในแง่ดี)
3. เขาทำให้ใช้ภาษาไทยได้ ก็สุดยอดแล้วครับ ^^


รูปที่ 1 วรรณยุกต์ลอย


รูปที่ 2 วรรณยุกต์ซ้อนทับกัน



--------------------------------------------
ติดตามเรื่องราวการเขียนโปรแกรม PHP ได้ที่
https://www.youtube.com/user/PHPcodingAndDesign/channels

เตรียมตัวก่อนเขียน PHP 5.5
https://www.youtube.com/playlist?list=PLEFxdFJkMLu78rEFPPzkpeieOGEJp730g







PHP CI MANIA PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://fastcoding.phpcodemania.com

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

FPDI มาทำให้การสร้างเอกสาร PDF ด้วย PHP ง่ายขึ้นกันเถอะ

เคยใช้กันรึยังครับ เหมาะสำหรับงานสร้างแบบฟอร์ม PDF แล้วกรอกข้อมูลตามแบบฟอร์มทีหลัง หลักการคือโหลด PDF เข้ามา แล้วก็เขียนไฟล์ใหม่ขึ้นมา ส่วนที่มันไดนามิกมากๆ คงไม่เหมาะเท่าไหร่ ถ้าให้มองการทำงานของไลบรารี่ตัวนี้ ก็เหมือนกับที่เราสั่งทำใบเสร็จรับเงิน แล้วกรอกข้อมูลทีหลังนั่นเอง 1. สร้าง PDF เปล่าๆ ที่มีแค่ส่วนหัว และส่วนท้าย 2. เติมข้อมูลรายการลงในส่วนกลาง ถ้าเกินจำนวนแถวที่กำหนดให้ขึ้นหน้าใหม่ http://www.setasign.com/products/fpdi/about/ ตัวอย่างในลิงค์ต่อไปนี้ จะเป็นการนำข้อความในไฟล utf8test.txt ไปแทรกในไฟล์ logo.pdf http://www.setasign.com/products/fpdi/demos/tcpdf-demo/ PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด  "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

PHP CI MANIA