thai in pdftotext

53 views
Skip to first unread message

Anon Sricharoenchai

unread,
Jan 23, 2008, 9:20:20 AM1/23/08
to thai-linux...@googlegroups.com, anon...@gmail.com
ตามที่โปรแกรม pdftotext support encoding TIS-620 ได้ดีอยู่แล้ว (โดย
patch ของคุณ Theppitak), โดยที่เมื่อเลือกใส่ option -enc TIS-620 นั้น,
ตัวโปรแกรมก็จะสามารถ map รหัสของวรรณยุกต์ลอย(สูงต่ำซ้ายขวา, uni f7XX)
ให้เป็น TIS-620 ที่ถูกต้องได้ด้วยนั้น (ดูการ map ที่
/usr/share/xpdf/thai/TIS-620.unicodeMap),
อย่างไรก็ตามพบว่ายังมีความต้องการของผู้ใช้ที่ต้องการแปลงเอกสารภาษาไทยออกมาเป็นข้อความที่ยังคงอยู่ในรูปของ
unicode (เช่น utf-8) เนื่องด้วยเหตุผลที่ว่าเอกสาร pdf ภาษาไทยบางชิ้น
จะมี,
1. ข้อความภาษาอื่นๆ ที่ไม่ใช่ภาษาไทยรวมอยู่ด้วย
2. สัญลักษณ์หรือเครื่องหมายชนิดอื่นๆ ที่ใช้รหัส unicode
ที่ไม่ปรากฏอยู่ใน TIS-620, เช่น, เครื่องหมายคำพูด เปิด/ปิด u201C/u201D
(LEFT/RIGHT DOUBLE QUOTATION MARK).

ถึงแม้ว่าการใช้ option -enc UTF-8
จะทำให้ได้เอกสารที่ยังคงไว้ซึ่งข้อมูลของ unicode ตรงตามต้นฉบับ
ทุกตัวอักษร, แต่การคงไว้ซึ่งข้อมูล unicode นี้ ก็จะรวมไปถึงรหัส f7XX
(ตามที่ได้กล่าวถึงข้างต้น) ที่จะไม่ได้รับการแปลงเป็นรหัส unicode
ภาษาไทยตามที่ควรจะเป็น ด้วยเช่นเดียวกัน.

จากการสำรวจ xpdfrc (xpdfrc(5) man page) จะพบว่ามี option
unicodeToUnicode ที่ช่วยในการแปลง unicode ต้นฉบับไปยัง unicode
ปลายทางที่ต้องการ,
อย่างไรก็ตาม พบว่าการใช้ option unicodeToUnicode
ไม่ใช่หนทางที่ดีในการแก้ปัญหาเหล่านี้ เนื่องจาก,
1. option นี้จะแปลงให้เฉพาะรหัส unicode ของ font บางชนิดเท่านั้น เช่น
CID Type (ถ้าข้าพเจ้าจำไม่ผิด) ตามที่แสดงโดยโปรแกรม pdffonts
2. จำเป็นต้อง map รหัส unicode ทั้งหมดทุกตัว. ไม่เพียงแต่จะต้อง map
ตัวที่ต้องการแปลง (f7XX) เท่านั้น, ตัวอื่นๆ ที่เหลือที่ต้องการให้คงค่า
unicode เดิมไว้นั้น ก็ต้องได้รับการ map ไว้ด้วย เช่นเดียวกัน (รวมแล้ว
6 หมื่นกว่าตัวอักษร (ถ้านับเฉพาะชุด unicode 16 bits)),
เนื่องจากถ้ามีตัวอักษร unicode ตัวใดที่ไม่ได้ map ไว้,
โปรแกรมก็จะไม่ส่งผลลัพธ์ของตัวอักษรตัวนั้นออกมาเลย.

ดังนั้น เท่าที่ทราบในขณะนี้, มีเพียงหนทางเดียวที่ทำได้ดีที่สุด คือ
การเขียน script ภายนอก มาแปลงรหัส unicode f7XX ไปเป็น 0eXX ในภายหลัง
อีกทีหนึ่ง.

สุดท้ายนี้ หากท่านใดมีความเห็นอื่นๆ หรือทราบวิธีการทางเลือกอื่นๆ
ที่น่าจะเหมาะสมกว่าวิธีการที่ได้กล่าวมา, กรุณาชี้แนะด้วย
จักเป็นพระคุณอย่างสูง.

Reply all
Reply to author
Forward
0 new messages