印度文字的复杂文本布局

Posted

技术标签:

【中文标题】印度文字的复杂文本布局【英文标题】:complex text layout of Indic scripts 【发布时间】:2011-05-20 12:05:45 【问题描述】:

我正在为泰卢固语使用 unicode truetype 字体。我想在为泰卢固语指定的范围内输入一个 unicode 字符序列,并使用 java 函数来显示相应的字母。java 的哪个部分处理将序列分成簇?我相信在 Windows UNISRIBE 中可以做到这一点。我想知道 java 是否有类似的东西 西瓦钱德

【问题讨论】:

我不确定您是在询问渲染 Telegu 文本还是查找 Telegu 字形之间的中断,因为 multiple Unicode "code points" combine to form a single glyph。你能澄清一下你在找什么吗? 【参考方案1】:

除非您正在开发一种新字体,否则您无需了解 java 如何根据 unicode 代码点呈现字形。

无论何时需要字符串,您都可以传入一系列 unicode 代码点,Java 会正确呈现这些代码点(元音、辅音、辅音上的变音符号、辅音混合)。这是一个例子

g.drawString("\u0C36\u0C3F\u0C35\u0C1C\u0C3E\u0C38\u0C4D\u0C24\u0C3F", 75,100);

【讨论】:

【参考方案2】:

如果我理解正确,您正在寻找BreakIterator.getCharacterInstance。

来自文档:

字符边界分析允许用户按照他们期望的方式与字符进行交互,例如,在文本字符串中移动光标时。字符边界分析提供通过字符串的正确导航,无论字符是如何存储的。返回的边界可能是补充字符、组合字符序列或连字簇的边界。例如,重音字符可能存储为基本字符和变音符号。用户认为是字符的内容可能因语言而异。

【讨论】:

【参考方案3】:

Java 的显示例程依赖于底层库,但如果您想对它们进行更严格的控制,java-gnome 具有针对 Cairo 和 Pango 的绑定。

【讨论】:

以上是关于印度文字的复杂文本布局的主要内容,如果未能解决你的问题,请参考以下文章

Android Compose 新闻App下拉刷新复杂数据网格布局文字样式

杂文 | 自媒体创业泡沫消亡史

如何将印度字符转换为 Unicode 转义字符

输入文本时下边的布局自动上升到输入法上边

网页布局——float浮动布局

CSSCSS 文本样式 ③ ( 文字排版案例一 | 设置标题 | div 中设置布局 | hr 标签设置横线 | p 标签分割段落 | 设置页面总体文字大小 | 修改 h1 标签样式 )