January 7, 2018

การแก้ภาษาไทยใน PDF ของ LimeSurvey Version 2.05+

จากตอนก่อนเรื่อง การแก้ภาษาไทยใน PDF ของ LimeSurvey เนื่องจากมีการอัพเดทรุ่นของ Limesurvey ใหม่ มีการจัดระเบียบเกี่ยวกับ Third Party Application พอสมควรทำให้การแก้ไขแบบเดิมไม่สามารถทำได้ ประจวบกับมี e-mail มาสอบถามเกี่ยวกับการแก้ไข เลยลองกลับมาแก้อีกครั้ง จำได้ว่าเคยอ่านผ่านๆตาๆ มีคนบอกว่าตอนนี้ TCPDF สามารถใช้ TrueType Font ได้แล้ว เพราะฉะนั้น Font ที่ compile แล้วอาจไม่จำเป็น ค้นๆต่อ พบว่า ที่ thaicreate มีการคุยกันเรื่องนี้เหมือนกันและมีการแสดงตัวอย่าง code ให้ดู พบว่าเขาใช้ font ชื่อ freeserif ลองดูตัวอย่าง code เขาเป็นแบบนี้ครับ

[php htmlscript=””true”” smarttabs=””true””]

/************************************************************
* TCPDF default font settings
* ———————————————————-
* Page font, font size, header and footer fonts,
* HTML <small> font size ratio
***********************************************************/

$tcpdf[‘page_font’] = ‘freesans’;
$tcpdf[‘page_font_size’] = 9;
$tcpdf[‘data_font’] = ‘freesans’;
$tcpdf[‘data_font_size’] = 8;
$tcpdf[‘mono_font’] = ‘freemono’;

$tcpdf[‘small_font_ratio’] = 2/3;

[/php]

ของผมเป็น Windows Server ลองแก้ตามนี้นะครับ

ดาวน์โหลด font ที่ freeserif ที่ http://www.fontspace.com/gnu-freefont/freeserif

หลังจากนั้นแตกไฟล์ เอาเฉพาะไฟล์ .ttf ไปไว้ที่ \limesurvey\fonts

หลังจากนั้นแก้ไฟล์ tcpdf.php ใน \limesurvey\application\config ตรงบรรทัดประมาณ 190 เป็นต้นไป
โดยเปลี่ยน freesans เป็น freeserif และปรับ size ตามชอบใจ ผมใช้  10 กับ 8
นี่คือตัวอย่างการแก้ไขครับ

[php htmlscript=””true”” smarttabs=””true””]
/************************************************************
* TCPDF default font settings
* ———————————————————-
* Page font, font size, header and footer fonts,
* HTML <small> font size ratio
***********************************************************/

$tcpdf[‘page_font’] = ‘freeserif’;
$tcpdf[‘page_font_size’] = 10;
$tcpdf[‘data_font’] = ‘freeserif’;
$tcpdf[‘data_font_size’] = 8;
$tcpdf[‘mono_font’] = ‘freemono’;

$tcpdf[‘small_font_ratio’] = 2/3;

[/php]

หลังจากนั้น Save ไฟล์ แล้วลองเปิดรายงานดูนะครับ
ลองดูนะครับ ได้ผลยังไงช่วยบอกผมด้วย
ปล.หากต้องการใช้ Font THSaraban ซึ่งเป็น Font มาตรฐานราชการก็ทำได้แบบเดียวกันคือ Download Font THSarabun ลงมาแตกไฟล์ เลือกเฉพาะ file นามสกุล .ttf เอาไปใส่ไว้ที่ \limesurvey\fonts
หลังจากนั้นแก้ไฟล์ tcpdf.php ใน \limesurvey\application\config ตรงบรรทัดประมาณ 190 เป็นต้นไป

โดยเปลี่ยนจาก freeserif เป็น THSarabun และกำหนด size เป็น 16 และ 14 ตามตัวอย่างข้างล่างเลยครับ

[php htmlscript=””true”” smarttabs=””true””]
/************************************************************
* TCPDF default font settings
* ———————————————————-
* Page font, font size, header and footer fonts,
* HTML <small> font size ratio
***********************************************************/

$tcpdf[‘page_font’] = ‘THSarabun’;
$tcpdf[‘page_font_size’] = 16;
$tcpdf[‘data_font’] = ‘THSarabun’;
$tcpdf[‘data_font_size’] = 14;
$tcpdf[‘mono_font’] = ‘freemono’;

$tcpdf[‘small_font_ratio’] = 2/3;

[/php]

อยากตะโกนดังๆ ว่า ผมรัก Open Source

Print Friendly, PDF & Email

One thought on “การแก้ภาษาไทยใน PDF ของ LimeSurvey Version 2.05+

  1. Pingback: การปรับปรุงรุ่น (Update) ระบบสำรวจอิเล็กทรอนิกส์ (e-survey) ตอนที่ 1 - Suthep 's Weblog

Leave a Reply