复杂语言

       在常用的语言中,如拉丁语系(英文、法文)及东亚语系(中文,韩文和日文),一个字符无论出现在词的什么位置,它的形式是固定的。而有一些语言则不是这样,在这些语言中一个字符存在多个字形,当字符在词中的位置不同时(例如,位于词首,词中和词尾或独立),需要选择不同的字形来表示,这些语言统称为复杂语言。常见的复杂语言有蒙古文、藏文、阿拉伯文等。下图中是编码为1820(16进制)蒙文字符的变化形式。

除此以外,在一些语言中,还有强制合体的要求,即当某个规定的模板(多个字符连续)出现时,需要用一个其它的字符替换,例如当出现182c,1825且位于词首时,不仅要根据其中词中的位置进行变换,还要执行强制合体变换。如下图中所示:

变换规则和字体支持

       每种语言都有自己的变换规则,字体创建者在创建字体时,可以使用OpenType提供的技术把变换规则嵌入在字体文件中,以便客户在使用过程中根据规则选择正确的变换。

特点

       通常在将复杂语言文字生成PDF文件时,只能通过打印的方式实现,排版软件根据字体中的变换规则对字符进行了替换(在Windows平台上可以使用unscripe技术,在linux平台上可以使用pango和IBM提供的icu库实现。但是打印生成的PDF文件通过无法复制,主要是因为打印仅能提供字形的变换,不能提供编码的变换。而我们的开发包不仅提供字形变换,同时也进行了编码的变换,使得生成的PDF文件是支持文本复制的。

示例

[文本文件][生成的PDF文件]
版权声明 北京博鸿捷讯科技有限公司,京ICP备08002511 2007. All Rights Reserved