一种从Word文档中快速提取文字格式的方法和装置制造方法

文档序号:6494208阅读:414来源:国知局
一种从Word文档中快速提取文字格式的方法和装置制造方法
【专利摘要】本发明实施例提供了一种从Word文档中快速提取文字格式的方法和装置,包括以下步骤:将文档切分为多个部分;将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据;提取所述字符串数据中所用字体及颜色集合;解析每个字符串数据,并按照树形数据结构保存;从所述树形数据结构中提取文字格式,将所有文字格式汇总。本发明将ms-com接口与字符串处理相结合,研究出一系列解析规则,即吸取了ms-com接口操作便利的优势,又避免了反复调用ms-com接口导致效率低下的缺点,能够快速提取文档中全部文字格式。可以与电子签章等一些文档处理相关应用程序相结合,具有很高的使用价值。
【专利说明】—种从Word文档中快速提取文字格式的方法和装置
【技术领域】
[0001]本发明涉及文档处理、信息安全等领域,特别涉及电子签章应用中一种从Word文档中快速提取文字格式的方法和装置。
【背景技术】
[0002]随着技术的发展,越来越多的企事业单位及国家机关逐渐采取了电子化办公,极大的提高了工作效率。随之而来的便是电子办公所带来的安全性问题。由于电子文档易被拷贝或篡改,所签发的电子文档是否被修改,是否为签发人所签发等问题随之而来。电子签章产品的出现解决了上述问题,为电子文档的安全需求提供了技术依据。
[0003]Microsoft Word是微软公司出品的一个文档处理应用程序,Word文档是目前电子文档中的主流文档格式。所有电子签章产品均需要支持Word文档格式,保证能够检测出Word文档中文字是否经过篡改。
[0004]另一方面,很多情况下不仅文字起着重要作用,文字格式也发挥了很大作用。不同的文字格式含义可能完全不同,在一份电子合同或电子文档中,如果更改了部分文字格式,可能会引起不同的含义,从而提取Word文档所有文字格式,进行检测具有很重要的意义。
[0005]目前常用的Word文档文字格式提取的方法有以下几种:方法一:调用ms-word所提供的Com接口,获取每个文字对象,提取其属性值;方法二:使用一些开源文档处理软件进行解析及提取,如调用OpenOffice接口进行解析文档并提取文字格式;方法三:根据Word文档格式解析,并提取文字格式。
[0006]对于方法一来说,是目前电子签章产品获取文档格式的主流方法,使用简单,与Word应用系统兼容性好,但是每解析一个Word元素均要调用一次Com接口,效率低下,运行时间长,文档较大时运行速度非常缓慢,严重影响应用系统的使用,从而使用该方法的电子签章产品均不支持对大文档进行文字格式的签章。
[0007]对于方法二来说,一方面与Word应用程序兼容不好,很难集成使用;另一方面对doc格式文档支持不好,稳定性差,文档较复杂时,容易出现获取不到格式的情况。
[0008]对于方法三来说,目前只公布了 docx文档格式,对于doc文档格式不支持,从而无法支持Word2003与Word2000文档。
[0009]因此,找到一种能够快速提取Word文档中所有文字格式的方法,对于保护文档安全,具有很大意义。

【发明内容】

[0010]本发明实施例提供了一种从Word文档中快速提取文字格式的方法和装置,以实现在微软Word应用程序中,快速提取文档中文字格式,用于检测电子文档的安全性。
[0011]本发明解决上述技术问题的技术方案是,一种从Word文档中快速提取文字格式的方法,包括以下步骤:
[0012]将文档切分为多个部分;[0013]将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据;
[0014]提取所述字符串数据中所用字体及颜色集合;
[0015]解析每个字符串数据,并按照树形数据结构保存;
[0016]从所述树形数据结构中提取文字格式,将所有文字格式汇总。
[0017]以及一种从Word文档中快速提取文字格式的装置,所述装置包括:
[0018]文档处理模块,用于将文档切分为多个部分;
[0019]文档转换模块,用于将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据;
[0020]字符串解析模块,用于提取所述字符串数据中所用字体及颜色集合,解析每个字符串数据,并按照树形数据结构保存,从所述树形数据结构中提取文字格式,将所有文字格式汇总。
[0021]本发明将ms-com接口与字符串处理相结合,研究出一系列解析规则,即吸取了ms-com接口操作便利的优势,又避免了反复调用ms-com接口导致效率低下的缺点,能够快速提取文档中全部文字格式。可以与电子签章等一些文档处理相关应用程序相结合,具有很高的使用价值。
【专利附图】

【附图说明】
[0022]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本发明实施例提供的一种Word文档中快速提取文字格式方法的处理流程图。
[0024]图2为本发明实施例提供的一种Word文档中快速提取文字格式方法的装置结构示意图。
【具体实施方式】
[0025]为便于对本发明实施例的理解,下面将结合附图并以具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明的限定。
[0026]一种Word文档中快速提取文字格式的方法,可以与文档处理的一些应用程序相结合,快速提取文档内所有文字格式。其具体实施之一,与电子签章装置相结合,在Word文档中执行签章验章等操作时,需要提取当前文档所有文字格式,如图1所示,包括以下步骤:
[0027]步骤101,将文档切分为多个部分。具体的,获取上层电子签章程序传入的当前要处理的文档的Com指针;调用ms-word Com接口查找文档中的所有图片与控件;以图片与控件作为分隔点将文档分隔为多个部分,每个部分中均不包含图片及控件,从而在步骤102中该部分转化为字符串格式后,字符串数据小,解析速度快。
[0028]步骤102,将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据。具体的,使用ms-word Com接口 ;将每个部分的文档内容设置为选中状态,并且将每个部分的文档内容复制到系统剪切板上;以RTF格式打开系统剪切板;提取系统剪切板中的字符串数据,得到每个部分的文档内容分别对应的字符串数据。Word文档的RTF格式是一种能够记录Word元素的文本格式,便于通过字符串解析提取元素。该步骤通过ms-word Com接口及剪切板的RFT格式,能快速及方便的将Word部分文档内容转化为字符串数据。
[0029]步骤103,提取字符串数据中所用字体及颜色集合。具体的,查找并提取描述字体集合与颜色集合的字符串数据,通过查找“{\\fonttbl”与相匹配的可以提取字体集合字符串,通过查找“ {\\colortbl”与相匹配的“} ”可以提取颜色集合字符串;解析该描述字体集合与颜色集合的字符串数据,查找字体名与所对应的序列号,查找颜色与所对应的序列号;将字体名对应的序列号、颜色对应的序列号保存,供解析文本时使用。由于不同文档内容,不同文档格式,其描述文本格式的颜色序列号与字体序列号所对应的颜色、字体可能都不同,从而需要先解析出对应关系,供后续操作取得字体名及颜色数据。
[0030]步骤104,解析每个字符串数据,并按照树形数据结构保存。具体的,首先查找并提取描述文字集合的字符串数据,Word文档的RTF格式字符串中,以嵌套的方式描述整个文档内容,每个部分用H划分;递归解析描述文字集合的字符串数据,查找所有H中包含的元素内容,以树形数据结构保存,因为这些元素内容最适合树形数据结构表示,每个节点可表示该部分文字元素,包括文字格式如颜色、大小、字体、粗体等;判断树形数据结构中每个节点是否包含文字内容,如果不包含则舍去该节点,从而每个节点均表示文字内容与文字格式,如颜色、大小、字体、粗体等。
[0031]步骤105,从树形数据结构中提取文字格式,将所有文字格式汇总。具体的,遍历树形数据结构,提取所有节点内容;从每个节点内容中获取文字及文字格式;将文字格式中的颜色序列号转化为颜色数据,字体序列号转化为字体名称;合并相邻且具有相同格式的文字格式,树形数据结构中每个节点均包含文字元素,根据标签解析出文字格式,由于大部分相邻文字的格式是相同的,合并后有利于极大的压缩最终内容;将文档各个部分的文字格式合并,获取整个文档的文字格式。
[0032]基于上述提取方法,本发明还提出了 一种从Word文档中快速提取文字格式的装置结构。如图2所示,该装置结构至少包括文档处理模块100、文档转换模块200和字符串解析模块300,其中:
[0033]文档处理模块100,用于将文档切分为多个部分。具体的,文档处理模块100首先获取上层电子签章程序传入的当前要处理文档的Com指针,调用ms-word Com接口查找文档中所有图片及控件。在Word文档中,所有元素均有一个起点及终点位置编号,按顺序排列,从而根据图片及控件在文档中的位置,以图片与控件作为分隔点将文档分隔为多个部分,每部分中均不包含图片及控件。
[0034]文档转换模块200,用于将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据。具体的,使用ms-word Com接口,将每个部分的文档内容设置为选中状态,并且复制到系统剪切板系统剪切板。以RTF格式打开剪切板,提取所述系统剪切板系统剪切板中的字符串数据,得到每个部分的文档内容分别对应的字符串数据,即获得该部分文档内容的字符串格式数据。文档转换模块200通过ms-word Com接口及系统剪切板系统剪切板,能够快速且方便的将每个部分的Word文档内容转换为字符串格式。
[0035]字符串解析模块300,用于提取字符串数据中所用字体及颜色集合,解析每个字符串数据,并按照树形数据结构保存,从树形数据结构中提取文字格式,将所有文字格式汇总。具体的:
[0036]在步骤103中,字符串解析模块300首先从待解析字符串数据中查找并提取字体集合字符串与颜色集合字符串数据,通过查找“ {\\fonttbl”与相匹配的“} ”可以提取字体集合字符串,通过查找“{\\colortbl”与相匹配的可以提取颜色集合字符串。从字体集合字符串中提取每个字体元素,每个字体名均对应一个序列号,将对应关系保存,供后续操作使用;从颜色集合字符串中提取每个颜色元素,每个颜色的红绿蓝属性均对应一个序列号,将对应关系保存,供后续操作使用。
[0037]在步骤104中,字符串解析模块300从待解析字符串中提取描述文档内容的字符串数据。首先查找并提取描述文字集合的字符串数据,Word文档的RTF格式字符串中,以嵌套的方式描述文档中所有元素内容,每个元素用H划分。通过递归方式解析描述文字集合的字符串数据,查找所有H中包含的元素内容,以树形数据结构保存,因为这些元素内容最适合树形数据结构表示,每个节点可表示该部分文字元素,包括文字格式如颜色、大小、字体、粗体等。判断树形数据结构中每个节点是否包含文字内容,如果不包含舍去该节点,从而每个节点均表示文字内容与文字格式,如颜色、大小、字体、粗体等。
[0038]在步骤105中,字符串解析模块300遍历步骤104中所产生的树形数据结构,通过深度优先检索方式进行检索,提取所有节点内容。从每个节点内容中获取文字及文字格式,包括通过查询“13”、“1”、“&广、“^、“(^”等关键词提取粗细、倾斜、字体、大小、颜色等文字格式。使用步骤103中获得的对应关系,将文字格式中的颜色序列号转化为颜色数据,字体序列号转化为字体名称。合并相邻且具有相同格式的文字格式,压缩数据。最后将步骤101中切分文档后各个部分的文字格式合并,获取整个文档的文字格式。
[0039]用本发明实施例的装置从Word文档中快速提取文字格式的具体过程与前述方法实施例类似,此处不再赘述。
[0040]应当理解的是, 以上所述仅为本发明的较佳实施例而已,并不足以限制本发明的技术方案,对本领域普通技术人员来说,在本发明的精神和原则之内,可以根据上述说明加以增减、替换、变换或改进,而所有这些增减、替换、变换或改进后的技术方案,都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种从Word文档中快速提取文字格式的方法,其特征在于,包括以下步骤: 将文档切分为多个部分; 将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据; 提取所述字符串数据中所用字体及颜色集合; 解析每个字符串数据,并按照树形数据结构保存; 从所述树形数据结构中提取文字格式,将所有文字格式汇总。
2.根据权利要求1所述的一种从Word文档中快速提取文字格式的方法,其特征在于,所述将文档切分为多个部分具体包括: 获取上层电子签章程序传入的当前要处理的文档的Com指针; 调用ms-word Com接口查找所述文档中的所有图片与控件; 以图片与控件作为分隔点将所述文档分隔为多个部分,每个部分中均不包含图片及控件。
3.根据权利要求1所述 的一种从Word文档中快速提取文字格式的方法,其特征在于,所述将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据具体包括: 使用ms-word Com接口将每个部分的文档内容设置为选中状态,并且将每个部分的文档内容复制到系统剪切板系统剪切板上; 以RTF格式打开所述系统剪切板系统剪切板; 提取所述系统剪切板系统剪切板中的字符串数据,得到每个部分的文档内容分别对应的字符串数据。
4.根据权利要求1所述的一种从Word文档中快速提取文字格式的方法,其特征在于,所述提取所述字符串数据中所用字体及颜色集合具体包括: 查找并提取描述字体集合与颜色集合的字符串数据; 解析所述描述字体集合与颜色集合的字符串数据,查找字体名与所对应的序列号,查找颜色与所对应的序列号; 将字体名对应的序列号、颜色对应的序列号保存,供解析文本时使用。
5.根据权利要求4所述的一种从Word文档中快速提取文字格式的方法,其特征在于,所述的查找并提取描述字体集合与颜色集合的字符串数据,包括: 通过查找“{\\fonttbl”与相匹配的提取字体集合字符串,通过查找“ {\\colortbl”与相匹配的“} ”提取颜色集合字符串。
6.根据权利要求1所述的一种从Word文档中快速提取文字格式的方法,其特征在于,所述解析每个字符串数据,并按照树形数据结构保存具体包括: 查找并提取描述文字集合的字符串数据; 递归解析所述描述文字集合的字符串数据,查找所有H中包含的元素内容,以树形数据结构保存; 判断树形数据结构中每个节点是否包含文字内容,如果不包含则舍去该节点。
7.根据权利要求1所述的一种从Word文档中快速提取文字格式的方法,其特征在于,所述从所述树形数据结构中提取文字格式,将所有文字格式汇总具体包括:遍历树形数据结构,提取所有节点内容; 从每个节点内容中获取文字及文字格式; 将所述文字格式中的颜色序列号转化为颜色数据,字体序列号转化为字体名称; 合并相邻且具有相同格式的文字格式; 将文档各个部分的文字格式合并,获取整个文档的文字格式。
8.—种从Word文档中快速提取文字格式的装置,其特征在于,所述装置包括: 文档处理模块,用于将文档切分为多个部分; 文档转换模块,用于将每个部分的文档内容转换为字符串格式,得到每个部分的文档内容分别对应的字符串数据; 字符串解析模块,用于提取所述字符串数据中所用字体及颜色集合,解析每个字符串数据,并按照树形数据结构保存,从所述树形数据结构中提取文字格式,将所有文字格式汇总。
9.根据权利要求8所述的一种从Word文档中快速提取文字格式的装置,其特征在于: 所述的文档处理模块,具体用于获取上层电子签章程序传入的当前要处理的文档的Com指针; 调用ms-word Com接口查找所述文档中的所有图片与控件; 以图片与控件作为分隔点将所述文档分隔为多个部分,每个部分中均不包含图片及控件。
10.根据权利要求8所述的一种从Word文档中快速提取文字格式的装置,其特征在于: 所述的文档转换模块,具体用于使用ms-word Com接口将每个部分的文档内容设置为选中状态,并且将每个部分的文档内容复制到系统剪切板系统剪切板上; 以RTF格式打开所述系统剪切板系统剪切板; 提取所述系统剪切板系统剪切板中的字符串数据,得到每个部分的文档内容分别对应的字符串数据。
11.根据权利要求8所述的一种从Word文档中快速提取文字格式的装置,其特征在于: 所述的字符串解析模块,具体用于查找并提取描述字体集合与颜色集合的字符串数据,解析所述描述字体集合与颜色集合的字符串数据,查找字体名与所对应的序列号,查找颜色与所对应的序列号,将字体名对应的序列号、颜色对应的序列号保存; 查找并提取描述文字集合的字符串数据,递归解析所述描述文字集合的字符串数据,查找所有H中包含的元素内容,以树形数据结构保存,判断树形数据结构中每个节点是否包含文字内容,如果不包含则舍去该节点; 从每个节点内容中获取文字及文字格式,将所述文字格式中的颜色序列号转化为颜色数据,字体序列号转化为字体名称,合并相邻且具有相同格式的文字格式,将文档各个部分的文字格式合并,获取整个文档的文字格式。
【文档编号】G06F21/60GK103902918SQ201210587758
【公开日】2014年7月2日 申请日期:2012年12月30日 优先权日:2012年12月30日
【发明者】王申, 金端峰, 郭向国 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1