【发布时间】:2011-12-22 14:14:08
【问题描述】:
我正在尝试使用 ICU 进行复杂脚本的布局。它在布局引擎用户指南 (http://userguide.icu-project.org/layoutengine) 中有一个示例。看起来很简单,但是当我开始在示例代码中对其进行测试时,我卡在了 LEFontInstance 创建。
它没有任何东西可以满足特定的字体类型(ttf/otf 等)。他们在letest.cpp 文件中的PortableFontInstance 中给出了定义和使用ttf 字体的示例。我从所有这些信息中收集到的是,例如,如果我们想通过名称选择特定字体,我们必须编写一个继承自 LEFontInstance 的新类并自己实现字体选择。
这让我很沮丧,因为我认为众所周知的字体格式和系统字体表的使用应该包含在这样的库中,否则我作为用户必须实现字体读取和选择的所有功能。之后布局引擎可以处理字形。
是否值得将 ICU 用于复杂脚本的布局(因为 SDK 的 windows 和苹果对系统字体表中的字体提供了充足的支持)?
如果我使用 ICU 布局引擎,需要付出什么努力? (我可以看到我必须自己处理所有字体格式。)
我还有什么遗漏的吗?
【问题讨论】:
-
我也知道它是一个非常有用的 unicode 转换和正则表达式库的 api。
-
您看过 ICU 布局样本吗? icu/source/samples/layout
标签: icu