สวัสดีอีกครั้งครับ
ขอเพิ่มเติมรายละเอียดปัญหา เท่าที่สืบค้นได้ในขณะนี้นะครับ
1. เป็นเฉพาะกับฟอนต์แบบ OpenType (OTF) แต่ถ้าใช้ฟอนต์ TrueType (TTF) ไม่พบปัญหา
2. เป็นเฉพาะฟอนต์ Purisa ส่วนฟอนต์อื่นในกลุ่มเดียวกัน ผมได้ทดสอบ Norasi และ Sawasdee ไม่พบปัญหา
3. ทดสอบใน Ubuntu 18.04 จำนวน 1 เครื่อง และ Windows 10 จำนวน 2 เครื่อง พบว่าปัญหาเป็นเฉพาะใน Windows 10 ทั้งสองเครื่อง ส่วน Ubuntu ไม่พบปัญหา
4. ทดสอบด้วยฟอนต์เวอร์ชั่นล่าสุดแล้ว (0.7.2) และให้ผลแบบเดียวกันเมื่อใช้เวอร์ชั่น 0.7.1
ได้ลองดูโค้ดของ Libreoffice พบว่า สตริงที่แสดงผลในรูปที่แนบมานั้น (ญ หญิงแบบไม่มีหาง, ดอกไม้, เลข 4 superscript, ...) เกิดจากโค้ดส่วนนี้ บรรทัดที่ 181-207 ในเงื่อนไข if ( bHasCharMap )
ซึ่งเป็นการไล่อักขระที่มีอยู่จากด้านท้ายสุด ข้ามทุก 10 ตัว (nSkip = 10) และแสดงผลออกมา 8 ตัว (nMaxCount)
โค้ดส่วนนี้อยู่ในฟังก์ชั่น makeShortRepresentativeSymbolTextForSelectedFont
ซึ่งถูกเรียกใช้งานจากจุดเดียวคือบรรทัดที่ 691-692
> if (bSymbolFont || (!bUsingCorrectFont && sSampleText.isEmpty()))
> sSampleText = makeShortRepresentativeSymbolTextForSelectedFont(rDevice);
ทั้งนี้ ผมคาดว่าน่าจะเข้า condition จากเงื่อนไข (!bUsingCorrectFont && sSampleText.isEmpty()) มากกว่า
ขณะนี้ผมสืบค้นได้เท่านี้ครับ
ขอบคุณครับ
-- กรวิทย์