网站大量收购闲置独家精品文档,联系QQ:2885784924

基于ICU复杂文本布局引擎设计与跨平台应用研究.docVIP

基于ICU复杂文本布局引擎设计与跨平台应用研究.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ICU复杂文本布局引擎设计与跨平台应用研究

基于ICU复杂文本布局引擎设计与跨平台应用研究   摘 要:ICU复杂文本布局引擎与其他应用较为广泛的复杂文本布局引擎相比的一大长处是它的开放源代码。通过分析ICU源码,并以此为基础设计新的复杂文本的布局引擎。首先简要介绍了复杂文本布局引擎的一般原理,然后以复杂文字语言蒙古文为例,详细探讨了基于ICU的复杂文本布局引擎的设计思路和方法,最后对复杂文本布局引擎的跨平台应用进行了深入研究。   关键词:复杂文本布局引擎;ICU;跨平台??   中图法分类号:TP311; TP391文献标识码:A   文章编号:1001―3695(2007)02―0219―03   复杂文本布局引擎是专门用来处理复杂文本布局和显示的一个部件,它是操作系统以及一些大型应用软件不可缺少的一个组成部分。要实现一个民族的信息化,就必须实现对这个民族文字的计算机处理。从某种意义上说,对于一个使用复杂文字的民族,要实现这个民族的信息化,就必须设计出针对这个民族的复杂文本布局引擎。我国少数民族的蒙古文、藏文、维吾尔文等都是复杂文字,因此复杂文本布局引擎在我国一个重要的应用就是为我国少数民族地区开发支持本民族语言的重要基础软件和应用软件。其中之一就是为我国少数民族地区开发一套适用的办公套件。复杂文本布局引擎设计及其应用的研究对我国的信息化进程是一个重要的推力,有助于开发支持我国少数民族语言文字的基础软件(如基于Linux的操作系统)和应用软件(如基于OpenOffice的办公套件)。??      1 复杂文本布局引擎机制??      1.1 复杂文本布局引擎与OpenType[1]字库技术??   复杂文本布局引擎离不开字体技术的支持,它通过从字体中读取文本处理的相关数据来完成对复杂文本的处理过程。??   目前在复杂文本布局引擎中应用最广泛的字体技术是OpenType[1]字体技术,它是Microsoft公司和Adobe公司联合开发的一种基于Unicode且与平台无关的字体格式。该字体中含有很多重要的表格,其中与复杂文本布局紧密相关的表有字形替换表(GSUB)、字形置位表(GPOS)、字形定义表(GDEF)、字形调整表(JSTF)和基线数据表(BASE)。这几个表统称为OpenType布局表。布局表主要的目的是让字体尽量最大程度地变得智能。其中最主要的是GSUB和GPOS表,这两个表提供的数据及功能覆盖了几乎所有复杂文本处理的要求,它包含了在字形处理过程中用到的所有有关替换和字形置位的信息。这两个表都开始于一个定义了文字链表(ScriptList)、特征链表(FeatureList)和查找链表(LookupList)偏移的表头,GSUB/GPOS表中每一个替换/置位格式类型对应一个或多个Lookup数据。Lookup结构包含了替换和置位操作的具体数据信息。??   1.2 复杂文本布局引擎的工作原理??   对于复杂文本语言,输入的Unicode名义字符串必须经过布局引擎处理,才能得到正确的显现字形序列及字形之间正确的位置数据。图1为布局引擎流程结构图。??   图中横向虚线表示布局引擎部分,纵向虚线表示OpenType字体的具体替换和置位类型操作的实施模块。字体解释器负责从字体中读取各种信息及光栅化字形,并向其客户提供这些信息,它完全屏蔽了字体文件的细节和复杂性。通过布局引擎流程结构图,我们可以把复杂文本布局引擎按照先后顺序分为三大处理模块,即分成片段处理模块、文字处理模块和替换、置位操作实施模块。??   1.3 目前主要使用的复杂文本布局引擎??   目前主要使用的复杂文本布局引擎有Microsoft的Uniscribe(Unicode文字处理),Linux平台下基于GTK库的Pango和IBM的ICU[2](International Component of Unicode),其工作原理基本一致。当前它们均基本实现了对印度文、泰文、阿拉伯文和希伯莱文的支持。??   本文重点涉及的ICU[2]是由IBM开发的专门用来处理基于Unicode文本的开放源码的函数库,用于支持基于Unicode的软件的国际化和本地化。它能够提供对各种复杂文本的处理,并能够加入新的代码来支持对新的复杂文本的处理。ICU布局引擎(LayoutEngine)是ICU中独立的模块结构,用于处理复杂文本语言。目前,已经实现的复杂文本语言有阿拉伯文、印度文、泰文、希伯莱文。??   2 基于ICU的复杂文本布局引擎设计方法??   2.1 ICU布局引擎结构及接口分析??   ICU布局引擎UML结构[3]如图2所示。??   图2中类LayoutEngine是布局引擎的基类。类LEFontInstance是字体解释器库,在ICU中,它是纯

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档