论文部分内容阅读
复杂文本布局引擎是操作系统与大型应用软件不可缺少的重要组成部件。作为复杂文本布局引擎,无论是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的问题。