一种字体数据的处理方法及系统的制作方法

文档序号:6575334阅读:166来源:国知局
专利名称:一种字体数据的处理方法及系统的制作方法
技术领域
本发明属于字体技术领域,具体涉及一种字体数据的处理方法及系统,特别适用 于文字信息与字体数据整合在一起的文档中,或者附加到文档阅读软件中。
背景技术
电子文档在存储和展示的时候,包含图形、图片、表格、公式、多种语言文字等元 素,而文字是最主要的表示文档内容的元素,在文档中占的比重也最大。字体数据作为一种 资源,存储了一系列文字的字形描述数据,在文档展示的时候,根据文档中的文字信息,对 应字体数据中的字形数据渲染出图像或者一组路径显示到计算机屏幕或者输出到打印机 上。Typel全称PostScript Typel,是1985年由Adobe公司提出的一套矢量字体标 准,由于这个标准是基于PostScript Description Language (PDL),而PDL又是高端打印机 首选的打印描述语言,所以Typel迅速流行起来。但是Typel是非开放字体,Adobe对使用 Typel的公司征收高额的使用费。TrueType是一种新型数学字形描述技术。它用数学函数描述字体轮廓外形,含 有字形构造、颜色填充、数字描述函数、流程条件控制、栅格处理控制、附加提示控制等指 令。TrueType采用几何学中二次B样条曲线及直线来描述字体的外形轮廓,其特点是 TrueType既可以作打印字体,又可以用作屏幕显示;由于它是由指令对字形进行描述,因 此它与分辨率无关,输出时总是按照打印机的分辨率输出。无论放大或缩小,字符总是光滑 的,不会有锯齿出现。但相对PostScript字体来说,其质量要差一些。特别是在文字太小 时,就表现得不是很清楚。OpenType也叫Type2字体,它也是一种轮廓字体,比TrueType更为强大,最明显 的一个好处就是可以在把PostScript字体嵌入到TrueType的软件中。并且还支持多个平 台,支持很大的字符集,还有版权保护。可以说它是Typel和TrueType的超集。OpenType的主要优点如下1)增强的跨平台功能2)更好的支持Unicode标准定义的国际字符集3)支持高级印刷控制能力4)生成的文件尺寸更小5)支持在字符集中加入数字签名,保证文件的集成功能OpenType标准还定义了 OpenType文件名称的后缀名。包含TureType字体的 OpenType文件后缀名为.ttf,包含PostScript字体的文件后缀名为.OTF0如果是包含一 系列TrueType字体的字体包文件,那么后缀名为.TTC0Unicode (统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种 语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转 换、处理的要求。
要真正原版原式的展示的文字信息内容,必须保持用户对文字设置的颜色,字体, 大小等属性信息。要保证在任何系统中输出同样的结果,就必须将字体数据与文字信息整 合为一个整体。这时就需要对字体数据进行处理,现有技术中的处理方式为将字体数据去 掉部分冗余的信息,主要是字形的描述数据,例如OpenType字体中的glyf中的对字形的描 述,由于对其他的数据没有做处理,所以字体使用方式与完整字体没有区别。现有技术存在如下缺点1.字体使用逻辑复杂。由于现有技术处理过的字体数据在使用上与正常字体没 有区别,使用时要根据当前文字编码类型,确定使用哪种映射表。例如,OpenType中有多个 cmap表,经过一次或多次搜索才能确定字形描述数据的位置,并且在使用某些映射表时还 需要对编码进行一次或多次转换,逻辑较复杂。2.字体数据中仍有一些冗余数据。由于仅仅去除了部分字形描述数据,字体中还 存在一些与使用环境无关的一些信息,如OpenType中name表和cmap表中的一些信息。

发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种字体数据的处理方法及系 统。该方法及系统对字体数据进行处理后,能够提高字体数据的使用效率。为了实现上述目的,本发明采用的技术方案如下一种字体数据的处理方法,该方法首先建立文字编码与字形索引之间的对应关 系,记录在文字编码与字形索引映射表中;使用字体数据时,通过所述文字编码与字形索引映射表,获得与文字编码对应的 字形索引,再根据所述字形索引从字体数据中获取文字的字形描述数据。如上所述字体数据的处理方法,其中,文字编码是指文字的标准编码,包括 Unicode编码和GBK编码。如果文字编码不是Unicode编码,则将其转化为Unicode编码。如上所述字体数据的处理方法,其中,建立文字编码与字形索引之间对应关系的 过程包括以下步骤(1)获取并识别文字编码;(2)解析字体数据,从字体数据中获取文字编码和字形索引的对应关系;(3)生成文字编码与字形索引映射表。如上所述字体数据的处理方法,步骤(2)中,解析字体数据,获取文字编码和字形 索引对应关系的过程为根据文字的使用平台和文字编码的类型在字体数据中找到能够最 终获得文字编码与字形索引对应关系的一个或多个映射表,再根据找到的一个或多个映射 表获取与文字编码对应的字形索引。如上所述字体数据的处理方法,其中,建立文字编码与字形索引之间对应关系的 过程包括以下步骤(1)解析字体数据,找到能够最终获得文字编码与字形索引之间对应关系的一个 或多个映射表;(2)判断字体使用的文字编码是否是Unicode编码,如果不是Unicode编码,则将 其转换成Unicode编码;(3)在步骤(1)找到的映射表中提取与文字编码对应的字形索引,生成文字编码与字形索引映射表,所述文字编码与字形索引映射表记录文字的Unicode编码与字形索引 之间的对应关系。如上所述字体数据的处理方法,其中,在建立文字编码与字形索引之间的对应关 系后,将字体数据中的冗余数据删除。一种字体数据的处理系统,包括字体处理装置(2)和字体应用装置(3);所述字体处理装置(2)包括用于解析字体数据,获取文字编码和字形索引对应 关系的字形索引获取模块(22);用于生成文字编码与字形索引映射表的映射表生成模块 (23),所述文字编码与字形索引映射表用于记录文字编码与字形索引之间的对应关系;所述字体应用装置(3)包括用于解析文字编码与字形索引映射表,获取与文字编 码对应的字形索引或者与字形索引对应的文字编码的映射表解析模块(31);用于根据字 形索引从字体数据中获取文字字形描述数据的字形描述数据获取模块(32)。如上所述字体数据的处理系统,其中,字体处理装置(2)还包括用于获取并识别 文字编码的文字编码获取及识别模块(21),当文字编码为非标准编码时,还用于将非标准 编码转换成标准编码。如上所述字体数据的处理系统,其中,字体处理装置(2)还包括用于将字体数据 中的冗余数据删除的冗余数据删除模块(24)。本发明所述的方法及系统,与现有技术相比具有如下优点(1)字体使用逻辑简单,速度快。根据文字编码和字形索引,生成文字编码与字 形索引之间对应关系的映射表,省去每次使用字体时,均需要进行文字编码类型的判定和 cmap表的解析等操作。而且,文字编码与字形索引映射表使用简单,省去了多次查找cmap 表的复杂逻辑,使字形索引定位更快,提高了字体数据的使用速度。(2)去除了更多的冗余信息,使字体数据更小。根据文字编码与字形索引映射表, 去除了字体数据中对使用环境的描述等冗余数据,例如,OpenType的name表中对不同平 台,不同语言的描述数据,以及cmap表中一些冗余的映射表。


图1是实施例1中所述系统的结构框图;图2是实施例2中所述系统的结构框图;图3是采用图1所述系统对字体数据进行处理和应用的流程图;图4是实施例1中处理字体数据的流程图;图5是实施例1中应用字体数据的流程图。
具体实施例方式本发明的核心思想是对现有文字信息与字体数据整合在一起的文档中的字体数 据或者现有整个字体数据进行处理,建立文字编码与字形索引之间直接的映射关系,记录 在文字编码与字形索引映射表中,然后将字体数据中的冗余数据删除。其中,字体数据是指 字体文件中的数据,包括描述一个字体所需要的所有数据,如名称、版权、字形描述数据以 及记录字形描述数据与文字编码对应关系的一个或多个映射表。字形索引用于指示字形描 述数据在字体数据中的位置。使用字体时,通过查询文字编码与字形索引映射表,先获得文字的字形索引,再根据字形索引从字体数据中获取文字的字形描述数据。下面结合实施例和附图,对本发明进行详细描述。实施例1本实施例以对将文字编码与字体数据整合在一起的文档中的字体数据进行处理 为例。图1出示了本实施例所述系统的结构,该系统包括字体数据处理装置2和字体数 据应用装置3。字体数据处理装置2包括文字编码获取及识别模块21、字形索引获取模块22、以 及映射表生成模块23。文字编码获取及识别模块21用于获取并识别文档1中的文字编码, 当文字编码为非标准编码时,还用于将非标准编码转换成标准编码。字形索引获取模块22 用于解析文档1中的字体数据,获取文字编码和字形索引的对应关系,所述字形索引用于 指示字形描述数据在字体数据中的位置。映射表生成模块23用于生成文字编码与字形索 弓I映射表,该表用于记录文字编码与字形索引之间的对应关系。字体数据应用装置3包括映射表解析模块31和字形描述数据获取模块32。映射 表解析模块31用于解析文字编码与字形索引映射表,获取与文字编码对应的字形索引或 者与字形索引对应的文字编码。字形描述数据获取模块32用于根据字形索引从字体数据 中获取字形描述数据。此外,为了删除字体数据中的冗余数据,减少字体数据的数据量,字体数据处理装 置2还包括冗余数据删除模块24。当生成文字编码与字形索引映射表后,冗余数据删除模 块24可以将字体数据中的冗余数据删除。图3出示了采用图1所示系统对字体数据进行处理并应用处理后字体数据的流 程,包括字体数据处理装置2处理字体数据,以及字体数据应用装置3应用字体数据。字体数据处理装置2处理字体数据的过程包括以下步骤(1)文字编码获取及识别模块21获取并识别文档1中的文字编码。文字编码可以是标准编码,如Unicode或者GBK,也可以是非标准编码。如果是非 标准编码,则需要将非标准编码转化为标准编码。(2)字形索引获取模块22解析字体数据,从字体数据中获取文字编码和字形索引 的对应关系。首先根据文字的使用平台和文字编码的类型在字体数据中找到能够最终获得文 字编码与字形索引对应关系的一个或多个映射表,再根据找到的一个或多个映射表获取与 文字编码对应的字形索引。(3)映射表生成模块23生成文字编码与字形索引映射表,该表用于记录文字编码 与字形索引之间的对应关系。生成文字编码与字形索引映射表后,冗余数据删除模块24将字体数据中的冗余 数据删除,如OpenType的name表中对不同平台、不同语言的描述数据,以及cmap表中一些 冗余的映射表。字体数据应用装置3应用经过字体数据处理装置2处理过的字体数据的过程包括 以下步骤(4)映射表解析模块31解析文字编码与字形索引映射表,获得文字编码或者字形索引。文字编码与字形索引映射表的使用方式有如下两种①获取文字编码,解析文字编码与字形索引映射表,查找与文字编码对应的字形 索引;②获取字形索引,解析文字编码与字形索引映射表,查找与字形索引对应的文字 编码。(5)字形描述数据获取模块32根据字形索引,从字体数据中获取文字的字形描述 数据。下面以对PDF文档内嵌字体中的“规格”两字进行处理为例,对上述字体数据的处 理和应用的过程进行举例说明。如图4所示,首先由文字编码获取及识别模块21获取并识 别“规格”的文字编码,分别为0x21和0x22。由于该编码为未知编码,即非标准编码,因此需 要先将其转换成标准编码。可以根据PDF文档中的ToUnicode表,获取“规格”的Unicode 编码,分别为0x89C4和0x683C。由于字体的使用平台为Windows,编码类型为Unicode,因此在字体数据中查找 Platform ID = 3 (Windows), Encoding ID = 1 (Unicode BMP (UCS-2))的 cmap 表(字符映 射表)。字形索引获取模块22解析字体数据,发现字体数据中有一个cmap表,但该表并不 是Platform ID = 3,Encoding ID = 1的cmap表。此时,采用段映射模式的cmap表(类型 为4),直接将“规格”编码0x21,0x22映射到OxFOOO到0xF08F。编码0x21映射到0xF021, 编码0x22映射到0xF022。查找段映射模式的cmap表,获得与0xF021、0xF022对应的字形 索引,分别为1和2。映射表生成模块33根据“规格”的Unicode编码以及字形索引,生成文字编码与 字形索引映射表,如下所示
权利要求
一种字体数据的处理方法,其特征在于所述方法首先建立文字编码与字形索引之间的对应关系,记录在文字编码与字形索引映射表中;使用字体数据时,通过所述文字编码与字形索引映射表,获得与文字编码对应的字形索引,再根据所述字形索引从字体数据中获取文字的字形描述数据。
2.如权利要求1所述的一种字体数据的处理方法,其特征在于所述文字编码是指字 体的标准编码,包括Unicode编码和GBK编码。
3.如权利要求2所述的一种字体数据的处理方法,其特征在于所述文字编码如果不 是Unicode编码,则将其转化为Unicode编码。
4.如权利要求1至3之一所述的一种字体数据的处理方法,其特征在于,所述建立文字 编码与字形索引之间对应关系的过程包括以下步骤(1)获取并识别文字编码;(2)解析字体数据,从字体数据中获取文字编码和字形索引的对应关系;(3)生成文字编码与字形索引映射表。
5.如权利要求4所述的一种字体数据的处理方法,其特征在于,步骤(2)中,解析字体 数据,获取文字编码和字形索引对应关系的过程为根据文字的使用平台和文字编码的类 型在字体数据中找到能够最终获得文字编码与字形索引对应关系的一个或多个映射表,再 根据找到的一个或多个映射表获取与文字编码对应的字形索引。
6.如权利要求1至3之一所述的一种字体数据的处理方法,其特征在于,所述建立文字 编码与字形索引之间对应关系的过程包括以下步骤(1)解析字体数据,找到能够最终获得文字编码与字形索引之间对应关系的一个或多 个映射表;(2)判断字体使用的文字编码是否是Unicode编码,如果不是Unicode编码,则将其转 换成Unicode编码;(3)在步骤(1)找到的映射表中提取与文字编码对应的字形索引,生成文字编码与字 形索引映射表,所述文字编码与字形索引映射表记录文字的Unicode编码与字形索引之间 的对应关系。
7.如权利要求1所述的一种字体数据的处理方法,其特征在于在建立文字编码与字 形索引之间的对应关系后,将字体数据中的冗余数据删除。
8.一种字体数据的处理系统,其特征在于所述系统包括字体处理装置(2)和字体应 用装置⑶;所述字体处理装置(2)包括用于解析字体数据,获取文字编码和字形索引对应关系的 字形索引获取模块(22);用于生成文字编码与字形索引映射表的映射表生成模块(23),所 述文字编码与字形索引映射表用于记录文字编码与字形索引之间的对应关系;所述字体应用装置(3)包括用于解析文字编码与字形索引映射表,获取与文字编码对 应的字形索引或者与字形索引对应的文字编码的映射表解析模块(31);用于根据字形索 引从字体数据中获取文字字形描述数据的字形描述数据获取模块(32)。
9.如权利要求8所述的一种字体数据的处理系统,其特征在于所述字体处理装置(2) 还包括用于获取并识别文字编码的文字编码获取及识别模块(21)。
10.如权利要求9所述的一种字体数据的处理系统,其特征在于所述文字编码为非标准编码时,文字编码获取及识别模块(21)还用于将非标准编码转换成标准编码。
11.如权利要求8至10之一所述的一种字体数据的处理系统,其特征在于所述字体 处理装置(2)还包括用于将字体数据中的冗余数据删除的冗余数据删除模块(24)。
全文摘要
本发明公开了一种字体数据的处理方法及系统,属于字体技术领域。现有字体数据的数据量较大,使用字体数据的逻辑较复杂,速度较慢,效率较低。本发明所述方法及系统首先建立文字编码与字形索引之间直接的映射关系,记录在文字编码与字形索引映射表中,然后将字体数据中的冗余数据删除;使用字体时,通过查询文字编码与字形索引映射表,先获得文字的字形索引,再根据字形索引从字体数据中获取文字的字形描述数据。采用本发明所述的方法及系统对字体数据进行处理后,减少了字体数据的数据量并提高了字体数据的使用效率。本发明特别适用于文字信息与字体数据整合在一起的文档中,或者附加到文档阅读软件中。
文档编号G06F17/30GK101996160SQ20091009081
公开日2011年3月30日 申请日期2009年8月10日 优先权日2009年8月10日
发明者丁力, 仇睿恒, 张磊, 王毅 申请人:北大方正集团有限公司;北京北大方正技术研究院有限公司;北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1