[发明专利]一种字体文件的嵌入方法及装置有效
申请号: | 200710177931.9 | 申请日: | 2007-11-22 |
公开(公告)号: | CN101187939A | 公开(公告)日: | 2008-05-28 |
发明(设计)人: | 刘源;何震生;王毅 | 申请(专利权)人: | 北大方正集团有限公司;北京方正阿帕比技术有限公司;北京大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/21 |
代理公司: | 北京同达信恒知识产权代理有限公司 | 代理人: | 郭润湘 |
地址: | 100871北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 字体 文件 嵌入 方法 装置 | ||
技术领域
本发明属于字体技术领域,特别涉及字体文件的嵌入方法及装置。
背景技术
文字是一份电子文档的主要内容,而任何文字都不能脱离字体而单独存在,目前大多数电子文档都使用了TrueType字体。由于中文字符较多,并且字形复杂,所以中文字体的字体文件都比较大。GB2312-80《信息交换用汉字编码字符集基本集》共收录了6763个简体汉字,GBK码收录了21003个汉字,而单、双、四字节混合编码的GB18030-2000标准更是收录了27000个汉字。与上述字符集对应的汉字字库文件一般都在10MB以上。为了保证电子文档的文字所采用的字体在不同的软、硬件环境下显示正确,可以考虑将字体文件嵌入到电子文档中,这样即使在没有该字体的计算机上也可以正常显示字体。
字体文件中包括glyf表、loca表和Hmtx表。
字形数据存储在glyf表中。众多字形(Glyph)数据的顺序排列。TrueType字体文件中的字形数据有两种形式,即:简单类型字形和复合类型字形。简单类型字形数据直接通过若干条Bezier曲线描述字形的轮廓;而复合类型字形则通过若干个简单类型字形和复合类型字形的放缩变换描述字形的轮廓,实际上是一种对现有字形数据的复用。当字体引擎解析复合字形时,必须找到所有该复合类型字形所引用的简单类型字形才能输出该字的位图,即对于复合类型字形在glyf表内的字形数据为其所引用的简单类型字形数据的索引。glyf表内部顺序存放了所有的字形数据。
loea表没有表头,其内部记录了字形索引(Glyph Index)到字形(Glyph)数据偏移量的一对一映射关系。根据TrueType文件格式规范可知,loca表存在两种格式,即:短格式和长格式。当loca使用短格式时,表内部为一个SHORT类型(2字节)的数组;当loca使用长格式时,表内部为一个ULONG类型(4字节)的数组。字体文件中的head表中的indexToLocFormat字段指明了该字体文件使用了上述两种格式中的哪一种。
由字形索引(Glyph Index)计算字形数据偏移量(Glyph Offset)的计算规则是:
若head表中的indexToLocFormat值为1,则使用公式A计算字形数据的偏移量;若indexToLocFormat值为0,则使用公式B计算字形数据的偏移量。(offsets为loca表内部的2字节或4字节数组)
公式A:GlyphOffset=offsets[GlyphIndex*4]
公式B:GlyphOffset=offsets[GlyphIndex*2]
Hmtx表记录了所有字形数据(Glyph)的Metrix信息。
就当前而言,嵌入到电子文档内部的字体文件体积较大,嵌入后电子文档的体积通常会大幅增加,这是与电子出版物要求的文件小巧,传输便捷的特点相冲突的。
发明内容
为了解决嵌入到电子文档内部的字体文件体积较大,嵌入后电子文档的体积通常会大幅增加的问题,本发明实施例提供了一种字体文件的嵌入方法,包括:
在字体文件中获取待嵌入字符的字形数据;
重新分配所获取的字形数据的字形索引的索引号,重新分配的最大索引号小于未重新分配前最大索引号;
按照重新分配的字形索引号顺序,将字形数据重新记录在glyf表中;
按照重新分配的字形数据的索引号,获取字形数据对应的偏移量;
将重新分配的字形索引的索引号和字形数据对应的偏移量的映射关系,记录在loca表中;
修改字体文件maxp表的numGlyphes和hhea表的numberOfHMetrics数据域的值,使之等于字形数据的数量;
将字体文件嵌入到电子文档中。
同时本发明实施例还提供一种字体文件的嵌入装置,包括:
字形数据获取模块:用于在字体文件中获取待嵌入字符的字形数据; 分配模块:用于重新分配所获取的字形数据的字形索引的索引号,重新分配的最大索引号小于未重新分配前最大索引号;
glyf表修改模块:用于按照重新分配的字形索引号顺序,将字形数据重新记录在glyf表中;
偏移量获取模块:用于按照重新分配的字形数据的索引号,获取字形数据对应的偏移量;
loca表修改模块:用于将重新分配的字形索引的索引号和字形数据对应的偏移量的映射关系,记录在loca表中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北大方正集团有限公司;北京方正阿帕比技术有限公司;北京大学,未经北大方正集团有限公司;北京方正阿帕比技术有限公司;北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710177931.9/2.html,转载请声明来源钻瓜专利网。