我的应用程序应该能够输出包含多种支持语言的用户指南的 PDF 文件。(我正在使用pdfkit)
我在寻找适合泰语的字体时遇到了一些麻烦:一些所谓的泰语支持的语言(包括来自 Google 的 Noto Thai)会输出方块、问号或更糟糕的不可读的东西。
经过一番研究,我发现一个似乎工作得相当好,直到我们的泰国人注意到字符
???
如下图所示,基本上第一个字符上方的两个元素折叠在一起,一个覆盖另一个
我正在使用从 myfonts.com 下载的 Nimbus Sans Thai Family,顺便说一下,它似乎能够正确渲染这些字符,因为您可能会喜欢尝试复制粘贴???在预览输入中
任何提示?
您的字体在某些方面不完整。它缺少一些通常位于 Unicode 的私有使用区 (PUA) 中的字形。
某些应用程序(我知道 Microsoft Word)可以手动解决这个问题,但您的渲染应用程序(和 Adobe Acrobat Viewer)不能。
您应该找到带有这些字形的字体,或者找到一个可以手动替换现有字形的应用程序。
许多字体,尽管他们声称支持泰语(而且它们确实包含“常规”泰语字形),但可能不完整。
除了规范字形外,格式良好的字体还应包含“私人使用区域”(PUA) 子范围,其中包含非规范形式的字形。这些字形包括:
SARA_I、SARA_UE等)结合使用,而在辅音+声标且无上元音的情况下移至下位;
PO_PLA,FO_FAN等(否则它将与辅音上尾重叠);

YO_YING和THO_THAN(无尾)与下元音结合使用的特殊字形;
通常,当渲染的应用程序找到上述符号组合时,它会在 PUA 区域中寻找替代字形。如果未找到,它只会回退到默认字形,这在您的情况下会发生。
以下是 Arial Unicode 和 FreeSerif 的 PUA 区域的两个屏幕截图,不言自明: FreeSerif 的 PUA 为空。我认为,你的 Nimbus 字体也会出现同样的问题。
以及最后的观察。不正确的字体可能以不同的方式不正确。上面我描述了一个更规范的情况,即音调的标准位置标记上位,而非标准位置下移(或不存在,这构成了不完整的字体)。
但是,有些字体的行为方式相反。它们(仅)在较低位置包含音标。这就是你似乎观察到的。
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |