使用定形引擎

Uniscribe 使用包含特定脚本布局知识的多个定形引擎。 它还利用 OpenType 布局整形引擎来处理特定于字体的脚本功能,例如字形生成、范围测量和断字支持。 Uniscribe 使用 Unicode 双向算法管理双向字符重新排序,并了解阿拉伯语、希伯来语和泰语的非 OpenType 布局字体格式。

由于分配给每个整形引擎的确切码位范围可能有所不同,脚本编号不会发布,SCRIPT_UNDEFINED除外。 但是,应用程序可以通过调用 ScriptGetProperties 函数来测试脚本的属性,该函数访问全局脚本属性表。 应用程序可以使用全局脚本属性来帮助将自己的布局规则与所需的整形引擎部门组合在一起。

应用程序通过调用 ScriptShape 函数访问整形引擎。 所有复杂脚本整形引擎、数字整形引擎和 ASCII 整形引擎在整形之前都会验证设备上下文句柄中指示的字体。 必须使用 ScriptItemize 函数返回的脚本来塑造复杂脚本,以便清晰易读。 如果采用SCRIPT_ANALYSIS结构的eScript 成员中指定的SCRIPT_UNDEFINED进行形状,则其他运行仍然清晰,尽管它们可能会失去版式质量。

如果成功,则 ScriptShape 返回 0;如果应用程序提供的字体不包含足够的字形或整形表,则返回USP_E_SCRIPT_NOT_IN_FONT。 如果应用程序指定了SCRIPT_UNDEFINED并且字体不支持某些字符,则函数仍会成功。 在这种情况下,应用程序应扫描字形输出缓冲区中是否存在缺失的字形。 有关处理缺少字形的策略,请参阅 使用字体回退

使用 Uniscribe