基于ICU的复杂文本布局引擎设计与应用

来源 :中国科学院软件研究所 | 被引量 : 0次 | 上传用户:ymqlove
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
复杂文本布局引擎是操作系统与大型应用软件不可缺少的重要组成部件。作为复杂文本布局引擎,无论是Windows的Uniscribe还是OpenOffice采用的ICULayout Engine,它们都对计算机正确处理各种复杂文字发挥着至关重要的作用。目前,世界上对于复杂文本布局引擎的研究与开发主要包括了Microsoft的Uniscribe(Unicode文字处理),Linux平台下基于Gtk库的Pango,KDE中Qt自带的文本布局引擎和IBM的ICU(International Component of Unicode)等。尽管这些复杂文本布局引擎的开发满足了世界上大多数民族语言文字的处理需求,但在处理中国少数民族语言文字方面仍然显得不足。因此,开发针对中国少数民族语言文字的复杂文本布局引擎就迫在眉睫。   开放源码的ICU Layout Engine库给我们提供了处理中国少数民族语言文字的契机。本文以ICU为基础,结合中国少数民族语言文字,研究了如何基于ICU进行复杂文本布局引擎的设计与应用。本文的主要工作有:   第一,集中整理并较为详细的分析了目前几个主要复杂文本布局引擎的工作流程及其特点。这几个复杂文本布局引擎包括:微软的Uniscribe,IBM的ICU,Qt自带复杂文本布局引擎,Pango,以及SIL International的Graphite。这些复杂文本布局引擎在处理流程上类似,但又各具特点各有侧重,通过对它们的比较分析,最后解释了本文为什么要基于ICU设计复杂文本布局引擎。   第二,较为详细的分析了ICU Layout Engine库,提出了如何基于ICU进行复杂文本布局引擎设计的一般方法。ICU Layout Engine库由条目划分模块、本地语言模块、变形引擎模块、抽象字体解释器模块组成。其中本地语言模块封装了特定语言文字的语义规则,是ICU复杂文本布局引擎中的关键部分,本文描述的基于ICU的复杂文本布局引擎设计主要就是针对此部分的设计。   第三,详细介绍了基于ICU的藏文复杂文本布局引擎的设计与实现,以及维吾尔文复杂文本布局引擎的修改。藏文复杂文本布局引擎设计的主要问题主要体现在藏文音节查找与藏文音节字符叠加显现两个方面,可分别通过ICU访问藏文字母状态表和藏文OpenType字库的特征标签加以解决。维吾尔文基于阿拉伯字母,但在个别语义规则上又与阿拉伯文有区别,所以用阿拉伯文布局引擎处理维吾尔文时,存在一些问题。针对这样的问题,本文分析了原因并提出了解决的办法。   最后,较为详细的介绍了OpenOffice在Windows下调用ICU的解决方案。一方面,目前在Windows下OpenOffice调用的是微软的Uniscribe,因而无法支持对中国民族语言文字的办公处理。另一方面,ICU复杂文本布局引擎已经可以支持中国少数民族文字处理而且Windows又是目前应用最为广泛的操作系统,因此在Windows下让OpenOffice调用ICU从而实现OpenOffice在Windows下对中国少数民族文字的办公处理具有重要意义。本文详细的介绍了OpenOffice在Windows下调用ICU面临的问题以及相应的解决方案。另外,由于OpenOffice最初在Linux下就是调用ICU处理复杂文字,所以它不存在类似Windows的问题。
其他文献
随着Internet的规模、用户和流量迅速增长,层次交换网络因其数据包转发简单,管理方便,成为网络发展的一个重要趋势。   层次网络采角特殊的网络体系结构,层次网络节点域交换机
近年来,随着分布式技术、网络技术和其他相关技术的发展,云计算自诞生以来即受到广泛关注。云计算技术将计算资源聚合在云端,为云平台的用户提供弹性、可靠、安全的服务。  Cl
在过去的十几年里,大多数研究主要集中在用进程代数对系统进行功能分析,很少涉及性能评价。一般的进程代数没有考虑概率,只能描述系统的功能特性,不能对系统进行性能评价,因
基于GPU的并行计算是近年来非常热门的技术,在几大显卡制造厂商的不断推动下,GPU并行计算已经在非常多的领域占据一席之地,比如英伟达公司就推出了为自家显卡编程的语言:CUDA。C
“科学数据库及其信息系统”是中国科学院“十五”信息化建设重大项目。经过二十多年的建设和发展,科学数据库已经成为科研工作的基础设施之一。随着网络技术的飞速发展,为了保
本文探讨了ABC方法的关键阶段——基于体系结构的构件组装的相关问题和工具支持。软件构件技术和软件体系结构的蓬勃发展,促使了ABC方法的提出。ABC方法将自顶向下的软件体系
随着软件技术的发展,人们越来越关心软件产品的非功能属性,如产品的易用性、高效性、可靠性以及安全性等。同时在一些大型软件系统中,非功能性需求的重要性远远超过功能性需求,例
软件构件库是对可复用软件构件资源进行管理并对软件构件的复用提供支持的基础设施。它主要提供构件描述、分类、发布、存储、检索、反馈等构件管理功能。其中,构件反馈是收集
随着计算机技术的日益发展和计算机应用的不断普及,特别是计算机网络与无线通信的广泛使用,计算机网络与移动终端设备的结合已成为新一代通讯的发展方向,而互联网上Web信息的浩
当前,计算机信息处理技术深刻地影响了现代人的生产生活。以办公套件作为解决方案的办公自动化大幅度提高了工作效率,改变人们的办公方式。长期以来,中国一直将办公套件作为重要