向PDF文件内嵌单字节字体的方法及其系统技术方案

技术编号:5214172 阅读:563 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种向PDF文件内嵌单字节字体的方法及其系统,本发明专利技术方法包括:确定出待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,以及所述单字节字体的字体描述信息;确定出所述待内嵌字体的PDF文件中,使用所述单字节字体进行文字输出的所有字符及其字符名字或字形标识,根据所述单字节字体的字体文件获取与所述字符名字或字形标识对应的字形描述信息;根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件。采用本发明专利技术,可解决现有技术中由于将产生PS数据流作为向PDF文件内嵌单字节字体的中间步骤所导致的易出错和效率低的问题。

【技术实现步骤摘要】

本专利技术涉及排版
,尤其涉及一种向PDF文件内嵌单字节字体的方法及其系统。
技术介绍
PDF(Portable Document Format,可携带文档格式)是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,即,PDF文件不管是在Windows,Unix还是在Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF文件。PDF文件目前已成为数字化信息事实上的一个工业标准。PDF文件是为了支持跨平台上的多媒体集成的信息出版和发布,为了达到此目的,PDF具有许多其他电子文档格式无法相比的优点。PDF文件可将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。PDF文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。字体内嵌是PDF技术中一个重要的分支,内嵌了字体的PDF文件在呈现时不依赖呈现程序字体环境的特性,对保持呈现内容的稳定极其重要。因此,大量针对PDF的应用将字体完全或部分内嵌的PDF文件作为推荐甚至是强制的要求。目前,实现PDF字体内嵌的方法将产生PS(PostScript)数据流作为中间步骤,即,先将待内嵌的PDF文件转换为PS流,之后把PS流转再换为内嵌了字体的PDF文件,也就是说,在将PS流转换为PDF文件的过程中,实现字体内嵌功能。此方法的主要问题在于:PDF和PS相互转换的过程相当复杂,容易引入错误,造成最终得到的PDF与原始的待内嵌的PDF在内容上出现差异;同时这个两步转换的过程在效率上也比较低。
技术实现思路
本专利技术实施例提供了一种向PDF文件内嵌单字节字体的方法及其系统,用以解决现有技术中由于将产生PS数据流作为向PDF文件内嵌字体的中间步骤所导致的易出错和效率低的问题。为实现上述目标,本专利技术实施例提供如下的技术方案:一种向PDF文件内嵌单字节字体的方法,包括:确定出待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,以及所述单字节字体的字体描述信息;确定出所述待内嵌字体的PDF文件中,使用所述单字节字体进行文字输出的所有字符及其字符名字或字形标识,根据所述单字节字体的字体文件获取与所述字符名字或字形标识对应的字形描述信息;根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入-->单字节字体后的PDF文件。一种向PDF文件内嵌单字节字体的系统,包括:字体描述信息确定模块,用于确定出待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,以及所述单字节字体的字体描述信息;字形描述信息获取模块,用于确定出所述待内嵌字体的PDF文件中,使用所述单字节字体进行文字输出的所有字符及其字符名字或字形标识,根据所述单字节字体的字体文件获取与所述标识对应的字形描述信息;PDF文件生成模块,用于根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件。本专利技术的上述实施例中,根据待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,确定待嵌入的单字节字体,并获取待嵌入的单字节字体的字体描述信息;以及,确定出所述待内嵌字体的PDF文件中,使用所述待嵌入单字节字体进行文字输出的所有字符及其字符名字或字形标识,然后从待嵌入单字节字体的字体文件中获取与所述标识对应的字形描述信息;最后根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件。由于上述确定待嵌入单字节字体的过程、获取字体描述信息的过程,以及获取字形描述信息的过程,都可通过解析待嵌入字体的PDF文件实现,因此与现有技术相比,省去了PS数据流的转换过程,从而简化了PDF文件内嵌字体的流程,减少了由于PS数据流转换所导致的错误几率,并提高了字体内嵌的效率。附图说明图1为本专利技术实施例向PDF文件内嵌单字节字体的流程示意图之一;图2为本专利技术实施例向PDF文件内嵌单字节字体的流程示意图之二;图3为本专利技术实施例向PDF文件内嵌单字节字体的系统的结构示意图。具体实施方式为解决上述现有技术存在的问题,本专利技术实施例提供了一种向PDF文件内嵌单字节字体的方法及其系统,使在解析待内嵌字体的PDF文件的同时,直接生成目标PDF文件(即内嵌了字体的PDF文件),在生成目标文件的过程中内嵌单字节字体的字形描述。与现有技术相比,由于避免了中间格式的使用,从而能更好地保证目标文件的正确性,提高内嵌操作的效率。下面结合附图对本专利技术实施例进行详细描述。对于一个作为输入的待内嵌字体的原始PDF文件(以下称原始文件),为了在其基础上生成一个作为输出的、内嵌字体的PDF文件(以下称目标文件),在本专利技术实施例中,根据如图1所示的步骤生成目标文件:步骤101、解析原始PDF文件,确定出该PDF文件所使用、但未嵌入到该PDF文件的字体,从中确定出待嵌入的单字节字体(如英文字体);根据确定出的待嵌入的单字节字体,获取待嵌入单字节字体的字体描述信息,其中可包括字体编码方式信息和字体名称;步骤102、通过解析原始PDF文件的内容流,确定出该原始PDF文件中使用待嵌入单字节字体进行文字输出的所有字符,并根据这些字符所属的字体类型和编码方式,将字-->符经编码映射得到这些字符对应的标识(如字符名字或字形标识),并从待嵌入单字节字体的字体文件中获取与这些字符的标识对应的字形描述信息;步骤103、将到的字形描述信息组织成符合PDF文件规范的字体程序(font program)数据流,将该字体程序数据流与获取到的字体描述对象作为内嵌到PDF文件中的字体文件数据,从而生成目标PDF文件。上述流程中,确定出的待嵌入的单字节字体,可以是该原始PDF文件所使用但未内嵌的所有单字节字体,或是其中的一部分单字节字体。上述流程可通过相应的软件系统实现。下面通过图2,描述利用本专利技术实施例的软件系统,在PDF文件中嵌入该PDF文件所使用的、但未内嵌到该PDF文件中的所有单字节字体的详细流程。为了方便实现本专利技术实施例,可使用如下集合作为实现该流程时用于存储中间数据的数据存储模块:待嵌入字体集合:是一个包含所有待嵌入单字节字体的字体对象的简单集合。解析原始文件时,每发现一个待嵌入单字节字体(以字体对象的形式存在),就在集合中增加一条记录,不计重复(即对于同一个字体对象被使用多次的情况仅保存对应的一条记录);待嵌入字体描述集合:是一个包含所有待嵌入单字节字体的字体描述对象的简单集合。不计重复(即对于同一个字体描述对象被引用多次的情况仅保存对应的一条记录;待嵌入字符集合:是一个以字体对象为索引的、包含该字体在原始文件中被使用的所有字符的集合。在此集合中,字符以字符名字(CharacterName)或字形标识(Glyph ID)的形式被记录,不计重复(即对于同一个字符被使用多次的情况仅保存一条对应的记录)。如图2所示,通过本专利技术实施例的软件系统,在PDF文件中嵌入单字节字体的过程,包括:步骤201、解析原始文件,获取其使用的所有未内嵌的单字节字体的字体对象(Font对象),并将本文档来自技高网
...

【技术保护点】
一种向PDF文件内嵌单字节字体的方法,其特征在于,包括以下步骤:确定出待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,以及所述单字节字体的字体描述信息;确定出所述待内嵌字体的PDF文件中,使用所述单字节字体进行文字输出的所有字符及其字符名字或字形标识,根据所述单字节字体的字体文件获取与所述字符名字或字形标识对应的字形描述信息;根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件。

【技术特征摘要】
1.一种向PDF文件内嵌单字节字体的方法,其特征在于,包括以下步骤:确定出待内嵌字体的PDF文件所使用的但未嵌入到该PDF文件中的单字节字体,以及所述单字节字体的字体描述信息;确定出所述待内嵌字体的PDF文件中,使用所述单字节字体进行文字输出的所有字符及其字符名字或字形标识,根据所述单字节字体的字体文件获取与所述字符名字或字形标识对应的字形描述信息;根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件。2.如权利要求1所述的方法,其特征在于,确定所述待内嵌字体的PDF文件中,使用所述待嵌入单字节字体进行文字输出的所有字符及其字符名字或字形标识,包括:通过解析所述待嵌入字体的PDF文件的内容流,得到所有涉及文字输出的指令,根据所述指令确定出使用所述待嵌入单字节字体进行文字输出的字符的编码;根据确定出的输出字符所属的字体类型和输出字符的编码,获取所述输出字符的字符名字或字形标识。3.如权利要求2所述的方法,其特征在于,根据确定出的输出字符所属的字体类型输出字符的编码,获取所述输出字符的字符名字或字形标识,包括:若所述输出字符所属的字体类型是Type1类型,则根据字符编码与字符名字的映射关系,得到所述输出字符的编码所对应的字符名字;若所述输出字符所属的字体类型是TrueType类型,则根据字符编码与字符名字的映射关系,得到所述输出字符的编码所对应的字符名字,再根据TrueType字体文件中字符名字与字形标识的映射关系,得到对应的字形标识。4.如权利要求1所述的方法,其特征在于,根据所述单字节字体的字体文件获取与所述标识对应的字形描述信息,包括:根据所述单字节字体的字体描述信息,加载相应的字体文件;从加载的字体文件中获取与所述标识对应的字形描述信息。5.如权利要求4所述的方法,其特征在于,所述单字节字体的字体描述信息中包括该字体在所述待内嵌字体的PDF文件中所使用的字符集信息;从加载的字体文件中获取与所述标识对应的字形描述信息时,仅根据所述单字节字体的字体描述信息中携带的字符集信息,从加载的单字节字体文件中的相应字符集获取字形描述信息。6.如权利要求1所述的方法,其特征在于,根据获取到的字体描述信息,以及获取到的字形描述信息,生成嵌入所述待嵌入单字节字体后的PDF文件,包括:根据待嵌入的单字节字体所属的字体类型,构造对应的字体程序数据流;将获取到的字形描述信息存入对应的字体程序数据流;将保存有字形描述信息的字体程序数据流,以及待嵌入单字节字体的字体描述信息写入目标PDF文件,所述目标PDF文件为嵌入所述待嵌入单字节字体后的PDF文件。7.如权利要求6所述的方法,其特征在于,如果所述字符的标识中包括子字符的字符名字或字形标识,则在获取字形描述信息时...

【专利技术属性】
技术研发人员:姚磊刘佳峰
申请(专利权)人:北大方正集团有限公司北京北大方正电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1