วันพุธที่ 26 กุมภาพันธ์ พ.ศ. 2557

OpenERP : PDF ไม่สามารถแสดงภาษาไทย

ผมงงอยู่ตั้งนานสุดท้ายไปได้วิธีของ

http://www.openerpthailand.org/viewtopic.php?f=2&t=338

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


ขั้นตอนที่ 1 : ทำการกำหนด custom font ใน customfonts คลิกขวาแล้วเปิดใน Edit Plus


มองหา
CustomTTFonts = [
                                      XXXXXXXX,
                                      XXXXXXXX,
                          ]

แล้ว copy code ด้านล่างไปแทนที่ (ขอย้ำว่า copy แล้วเอาไปแทนที่เลยนะครับ จะสังเกตุว่าเราจะใช้แค่ angsa และ cordia นะครับ ชื่อ font อาจจะต่างกันแต่ไปเรียก cordia เหมือนกัน)

CustomTTFonts = [('Angsana',"Angsana New", "angsa.ttf", 'normal'),
        ('Angsana',"Angsana New Bold", "angsab.ttf", 'bold'),
        ('Angsana',"Angsana New Italic", "angsai.ttf", 'italic'),
        ('Angsana',"Angsana New BoldItalic", "angsaz.ttf", 'bolditalic'),
        ('Helvetica',"DejaVu Sans", "cordia.ttf", 'normal'),
        ('Helvetica',"DejaVu Sans Bold", "cordiab.ttf", 'bold'),
        ('Helvetica',"DejaVu Sans Oblique", "cordiai.ttf", 'italic'),
        ('Helvetica',"DejaVu Sans BoldOblique", "cordiaz.ttf", 'bolditalic'),
        ('Times',"Liberation Serif", "cordia.ttf", 'normal'),
        ('Times',"Liberation Serif Bold", "cordiab.ttf", 'bold'),
        ('Times',"Liberation Serif Italic", "cordiai.ttf", 'italic'),
        ('Times',"Liberation Serif BoldItalic", "cordiaz.ttf", 'bolditalic'),
        ('Times-Roman',"Liberation Serif", "cordia.ttf", 'normal'),
        ('Times-Roman',"Liberation Serif Bold", "cordiab.ttf", 'bold'),
        ('Times-Roman',"Liberation Serif Italic", "cordiai.ttf", 'italic'),
        ('Times-Roman',"Liberation Serif BoldItalic", "cordiaz.ttf", 'bolditalic'),
        ('Courier',"FreeMono", "cordia.ttf", 'normal'),
        ('Courier',"FreeMono Bold", "cordiab.ttf", 'bold'),
        ('Courier',"FreeMono Oblique", "cordiai.ttf", 'italic'),
        ('Courier',"FreeMono BoldOblique", "cordiaz.ttf", 'bolditalic'),
]

ตามรูปด้านล่างครับ



หลังจากนั้นให้ทำการ Save ครับ

ขั้นตอนที่ 2 : ทำการ Restart OpenERP Server โดยไปที่ start-->ในช่องว่างให้พิมพ์ services.msc แล้ว Enter


จากนั้นจะปรากฏหน้าจอ services ให้คลิกที่ Tab : Standard มองหา OpenERP Server



จากนั้นคลิกขวา แล้วกด Restart


ขั้นตอนที่ 3 : แก้ config ใน application ให้เรา login เข้าไปใน application จากนั้นไปที่ setting --> companies


จากนั้นคลิกที่ Your Company แล้วเลือก Edit-->ไปที่ Tab : Header/Footer


มองหา FontName แล้วให้แก้เป็น Angsana New ให้หมด ดังรูปด้านล่าง (ขอเน้นย้ำว่าต้องแก้ให้หมดนะครับ มันจะมีทั้งหมด 3 ส่วน คือ RML Header  RML Internal Header และ RML Internal Header for Landscape Reports)




 ขั้นตอนที่ 4 : แก้ Font Name ใน Report ตัวอย่างของผมคือใช้ Report : Invoice นะครับ path ในการเก็บ report ตัวนี้จะอยู่ที่


เราต้องแก้ไข Font ใน ไฟล์ .rml นะครับ คลิกขวาเปิดใน Edit Plus แล้วเลื่อนลงมาที่ จากนั้นมองหา Font ที่มีอยู่ก่อนแล้วทำการ Ctrl+F แล้วทำการ Replace All ด้วย Font : Ansana New นะครับ จากนั้นก็ Save



แล้วลองไปสร้าง report ดูจะพบว่ามันกลายไปภาษาไทยเรียบร้อย

 หลักของการทำคือ อย่าได้พลาดแม้กระทั้งขั้นตอนเดียว

ขั้นตอนที่ 1 : Copy Code ไปวางแทนเลยนะครับ
ขั้นตอนที่ 2 : ทำการ Restart เครื่องไปเลย
ขั้นตอนที่ 3 : ต้องตามแก้ Font เก่าให้หมดนะครับ ผมเคยแก้ไม่หมด มันไม่ทำงานเหมือนกัน
ขั้นตอนที่ 4 : ก็เช่นเดียวกับขั้นตอนที่ 3 ต้องตามแก้ให้หมด และต้องตามหา .rml ให้เจอนะครับ

ทำตามขั้นตอนทั้ง 4 แล้วทำการ Restart OpenERP Server อีกรอบเพื่อความมั่นใจ

ไม่มีความคิดเห็น: