วันพุธที่ 1 กรกฎาคม พ.ศ. 2552

Export Thai pdf on drupal

Share it Please
ปัญหาคือ module print บน drupal นั้นไม่ ได้ติด tools ในการ export pdf มาให้เราจึงต้องทำการเลือก third-party tools มาซักตัวซึ่งผมก็เลือก tcpdf เพราะชื่อนั้นคุ้นหูดีครับ
ชื่อคุ้นหูแต่ว่า tcpdf นั้นยังไม่สามารถ export ภาษาไทยได้ ดังนั้นเราจึงต้อง config กันหน่อย
ขั้น แรกก็สันนิษฐานว่า ฟอนต์ที่ใช้นั้นคงไม่มี อักขระ ไทยแน่ๆจึงลองเปลี่ยน font ดู ซึ่งไปเจอ freeserif ที่ดันมีอักขระไทยแต่ว่ามีแต่แบบ regular ส่วนที่เป็น bold กับ italic ดันไม่มี
คราวนี้สงสัยคงต้องสร้าง font เองแล้วแต่ว่า tcpdf ใช้ font นามสกุล .ctg.z, .z และ .php ซึ่ง tcpdf นั้นมี tools ในการสร้าง font มาให้อยู่แล้วและมีคู่มืออยู่ที่

http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_fonts


วิธีการครบ แต่ว่าขาด font ซึ่ง font ฟรี ที่มีอักขระไทยนั้นคงหนีไม่พ้น norasi ผมจึงทำการ ดาวน์โหลดแล้วจัดการ
  1. สร้าง ufm ก่อนด้วยวิธีการ ttf2ufm -a -F norasi.ttf จะได้ ufm และ afm มาครับแต่ว่าเราจะให้ ufm เนื่องจากเราจะใช้ TrueType ที่เป็น Unicode ครับ
  2. ทำ การ run php script makefont.php เพื่อสร้าง ไฟล์เจ้าปัญหา .ctg.z, .z และ .php ด้วยคำสั่ง php -q makefont.php norasi.ttf norasi.ufm
ก็จะ ได้ ไฟล์ .ctg.z, .z และ .php ครับซึ่งถ้าเรา copy เข้าไปเก็บไว้ใน fonts ของ tcpdf แล้วทำการเลือกใช้ font นั้นเราก็จะสามารถ export เป็นภาษาไทยได้แล้ว
แต่ที่เราทำมานั้นเราเพิ่งจะได้ font ที่เป็นแบบ regular ตัวเดียวนะครับ ถ้าเราต้องการตัว bold และ italic เราต้องทำกับ font ที่เหลือด้วยครับโดยชื่อนั้นต้องเป็นตาม pattern นี้
  1. norasi = regular
  2. norasib = bold
  3. norasii = italic
  4. norasibi = bold & italic
แค่นี้เรา file PDF เราก็สมบูรณ์แล้วครับ เย้

ซึ่งต้องใช้ makefont.php และ ttf2ufm.exe ซึ่งอยู่ภายใน tcpdf ครับ

Blogroll

About