PDF 查看器未按预期呈现使用 PDFbox 生成的 PDF 中的所有泰米尔语字母。看来我必须在生成 PDF 以使其按预期呈现时进行所需的替换。
尝试替换,任何帮助将不胜感激。基本上这是需要替换或更改泰米尔语字母的三种情况。其余字母的大多数替换或多或少都遵循相同的。
需要反转字形
கெ = க + ெ = க ெ -> ெ + க = கெ
需要拆分和重新排序字形
கொ = க + ொ = க ொ -> க + ெ + ா -> ெ + க + ா = கொ
新结果字形 - 用新字形替换一系列字形。新字形没有 unicode,只存在于字体文件中。
கு = க + ு = க ு -> கு
输入文本 | 来自 JDK 的字符列表 | 来自 JDK 的代码点 | ttf 中的 gid | 实际的* | 预期的 | |
---|---|---|---|---|---|---|
கெ | க + ெ</td> | 2965 3014 字符:க 代码点:2965 unicode:ub95 字符:ெ 代码点:3014 unicode:ubc6 | 1828 1856 | க + ெ = க ெ</td> | ெ + க = கெ | 反转预期的字形。 |
கொ | க + ொ</td> | 2965 3018 字符:க 代码点:2965 unicode:ub95 字符:ொ 代码点:3018 unicode:ubca | 1828 1859 | க + ொ = க ொ</td> | க + ெ + ா ெ + க + ா = கொ | 预计拆分和重新排序。 |
கு | க + ு</td> | 2965 3009 字符:க 代码点:2965 unicode:ub95 字符:ு 代码点:3009 unicode:ubc1 | 1828 1854 | க + ு = க ு</td> | கு (gid = 6698) | 预计新字形。新字形没有 unicode,只存在于字体文件中。 |
下面是预期的内容,进行了硬编码替换(对于没有 unicode 的字形 id,硬编码为 PDCIDFontType2#public byte[] encode(int unicode)。在调用 showtext 之前反转、拆分和重新排序输入文本字符序列。还添加了在 TrueTypeEmbedder Subsetter 中没有 unicode 的 glyphe id 用于将 glyphe 嵌入到生成的 pdf 中。)只是为了获取它。
如何以有效的方式处理这些替换?
查看 GlyphSubstitutionTable、fontbox.cmap.Identity-H、fontbox.unicode.Scripts.txt。到现在都搞不定。任何帮助,将不胜感激。