หน้า 1 จากทั้งหมด 1

วิธีการแก้ปัญหาภาษาไทยในไฟล์ .pdf

โพสต์แล้ว: ศุกร์ 26 ต.ค. 2012 6:34 pm
โดย batman1292
การที่ไฟล์ .pdf ไม่แสดงข้อมูลที่เป็นภาษาไทย ผู้เขียนได้สันนิฐานเบื้องต้นว่า
การเข้ารหัสยังไม่ถูกต้อง ไม่ใช่เรื่องของการเปลี่ยน font แต่อย่าง
ต้องไปตั้งค่าของการเข้ารหัส ในที่นี้ผู้เขียนยังไม่สามารถหาทางแก้ไขได้
โดยไฟล์ที่เกี่ยวข้องมีดังนี้
OpenERP\Server\server\openerp\report\render\rml2pdf\customfonts.py - เป็นไฟล์ที่กำหนดชื่อ Fonts ต่างๆที่เราต้องการใช้

Re: วิธีการแก้ปัญหาภาษาไทยในไฟล์ .pdf

โพสต์แล้ว: ศุกร์ 26 ต.ค. 2012 6:37 pm
โดย batman1292

Re: วิธีการแก้ปัญหาภาษาไทยในไฟล์ .pdf

โพสต์แล้ว: ศุกร์ 26 ต.ค. 2012 7:36 pm
โดย batman1292
ตัวอย่างการแก้ปัญหากับภาษา อาราบิค
http://www.atmit.net/en/open-erp-2.htm

Re: วิธีการแก้ปัญหาภาษาไทยในไฟล์ .pdf

โพสต์แล้ว: ศุกร์ 26 ต.ค. 2012 7:36 pm
โดย batman1292
อันนี้เป็นการแก้แบบภาษาไทย

ส่วนเรื่องภาษาไทย
ผมแนะนำให้ใช้ Font ทางการของ SIPA เลย (TH Niramit AS)
ไม่มีปัญหาสระลอย ทั้งในหน้าweb และ report
วิธีการทำครับมี 2 วิธี :
=== Method 1 เพิ่ม Font===
1. copy font ลงไปที่ /usr/share/fonts/truetype/ หรือ ตาม OS ของท่าน
1.1 sudo fc-cache -fv
2. edit openerp/report/render/rml2pdf/customfonts.py
ที่ CustomTTFonts =
Add :
('TH Niramit',"TH Niramit AS", "TH Niramit AS.ttf", 'normal'),
('TH Niramit',"TH Niramit AS Bold", "TH Niramit AS Bold.ttf", 'bold'),
... จนครบ ทั้ง 4 รูปแบบ (ตัวธรรมดา/bold/เอียง/หนาเอียง)
หรือ ตาม Font ที่ท่าน Install
3. ที่ TTFSearchPath_Linux (หรือ _Win) ให้ตรวจสอบว่า path ถูกต้อง
4. Save and restart OpenERP server (จำเป็นต้อง restart นะครับ ผมงมอยู่หลายวัน เพราะไม่รีตาส แล้ว font มันไม่ reload)

จากนั้นทำการ customize format
Setting>Company>your name> Header/footer
edit ส่วน <setFont name="TH Niramit AS" size="8"/> (หรือ ชื่อ font อื่นๆ)
edit report ที่ต้องการเช่นกัน
ลอง find -R *.rml ใน folder openerp ของท่านดูนะครับ

=== Method 2 แก้ให้ font ทุกตัวไปอ่าน file font ของเราแทน===
วิธีนี้ทำทีเดียว แล้ว font ในทุกส่วนของเราจะถูกแทนที่ด้วย font ใหม่ไปเลย (วิธีมักง่ายนั้นเอง 555)
1. copy font ลงไปที่ /usr/share/fonts/truetype/ หรือ ตาม OS ของท่าน
1.1 sudo fc-cache -fv
2. edit openerp/report/render/rml2pdf/customfonts.py
ที่ CustomTTFonts =
แก้ส่วนที่เป็น ชื่อ file font ของทุก font เป็น font ใหม่ของเราซะเลย เช่น
('Tahoma',"Tahoma", "TH Niramit AS.ttf", 'normal'),
('Tahoma',"Tahoma Bold", "TH Niramit AS Bold.ttf", 'bold'),
... จนครบ ทุก font เลย :p
3. ที่ TTFSearchPath_Linux (หรือ _Win) ให้ตรวจสอบว่า path ถูกต้อง
4. Save and restart OpenERP server


ที่มา: http://forum.ubuntuclub.com/forum?topic=23775.0

Re: วิธีการแก้ปัญหาภาษาไทยในไฟล์ .pdf

โพสต์แล้ว: ศุกร์ 26 ต.ค. 2012 11:02 pm
โดย batman1292
จากการได้ลองผิด ลองถูกมาเรื่อยๆ
พบว่าการแก้ปัญหาภาษาไทยในไฟล์ .pdf ของ report นั้นอยู่ที่การกำหนด font ให้กับไฟล์ .pdf
ไม่ใช่ส่วนของการเข้ารหัสที่ผู้เขียนได้สันนิฐานไว้ข้างต้นอย่างใด (ต้องขออภัยใน ณ ที่นี้ด้วย)
ส่วนการแก้ไขนั้นได้กล่าวไปเมื่อข้างต้นโดยสามารถเลือกได้ทั้ง 2 วิธีขึ้นและไม่จำเป็นที่จะต้องลง font ใหม่สามารถเลือกใช้ font ที่มีอยู่ในเครื่องของท่านได้เลย