一种解析Office二进制格式并提取文档属性文字的方法及系统技术方案

技术编号:24331618 阅读:103 留言:0更新日期:2020-05-29 19:51
本发明专利技术提供了一种解析Office二进制格式并提取文档属性文字的方法及系统,本发明专利技术通过分析Office文档的二进制数据,根据文档中属性的存放原理,将Office文档中的属性文字全部提取出来,相对于使用二次接口开发和JAVA OPI技术接口提取文档属性中的文字,通过分析二进制文件并提取文件属性中文字可支持跨平台,不仅支持Windows系统而且支持Linux等系统,且效率高,通过二进制读取文件,并进行精确定位处理,执行效率显著提高,另外程序包小,所有实现均通过手动编码和调用系统API函数,不依赖任何第三方程序文件。本发明专利技术不限制于Office文件的文字提取,凡是采用Office存放原理的文件都可采用此方法提取文字,如金山Office等。

A method and system of parsing office binary format and extracting document attribute text

【技术实现步骤摘要】
一种解析Office二进制格式并提取文档属性文字的方法及系统
本专利技术涉及Office文字提取
,特别是涉及一种解析Office二进制格式并提取文档属性文字的方法及系统。
技术介绍
Office办公文档的属性信息记录了文档的汇总信息,如标题、作者、日期、关键词等,通过文档的属性就可以了解文档的内容,而不用打开文件去浏览,提高了文档的浏览分类速度。现在通用的Office文档属性提取方法主要有两种,一种是采用Windows系统提供的Com接口,另一种就是采用JAVA提供的OPI技术进行提取,但是这两种技术存在以下缺点:对于Com接口技术,不能跨平台,仅在Windows平台上运行,不支持Linux、Unix、Mac等系统;且效率低,采用Com技术,数据需要经过多层转换。对于JAVAOPI技术,其提取文档中的文字,需要在运行环境中自带JAVA虚拟机环境,此方法导致程序安装包过大,且存在JAVA运行性能低的问题,导致提取文字效率低。
技术实现思路
本专利技术的目的是提供一种解析Office二进制格式并提取文档属性文字的方法及系统,旨在解决现有技术中文档属性提取存在效率低以及兼容性差的问题,提高兼容性和提取效率。为达到上述技术目的,本专利技术提供了一种解析Office二进制格式并提取文档属性文字的方法,所述方法包括以下步骤:S1、以二进制方式打开Office文档,获取所有\005SummaryInformation数据流以及\005DocumentSummaryInformation数据流;S2、在两种数据流中获取基本属性和自定义属性的分类信息;S3、对于基本属性,读取基本属性中属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出属性信息;S4、对于自定义属性,分别读取自定义属性中文档属性和自定义属性的属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出文档属性和自定义属性信息。优选地,所述基本属性的分类信息包括默认属性分类个数NumPropertySets、属性分类1IdOffsetElement1和属性分类2IdOffsetElement2,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示IdOffsetElement1有效,当为2时,IdOffsetElement1和IdOffsetElement2都有效。优选地,所述自定义属性的分类信息包括自定义属性分类个数NumPropertySets、文档属性DocumentSummaryInformation和自定义属性UserDefinedProperties,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示DocumentSummaryInformation有效,当为2时,DocumentSummaryInformation和UserDefinedProperties都有效。优选地,所述属性类型propId为CODEPAGE时,其表示当前属性数据采用的字符编码格式,当值为0x04B0时,表示UNICODE方式,当值为-535时表示为UTF-8,其他表示ANSI。本专利技术还提供了一种解析Office二进制格式并提取文档属性文字的系统,所述系统包括:数据流获取模块,用于以二进制方式打开Office文档,获取所有\005SummaryInformation数据流以及\005DocumentSummaryInformation数据流;属性分类获取模块,用于在两种数据流中获取基本属性和自定义属性的分类信息;基本属性提取模块,用于读取基本属性中属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出属性信息;自定义属性提取模块,用于分别读取自定义属性中文档属性和自定义属性的属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出文档属性和自定义属性信息。优选地,所述基本属性的分类信息包括默认属性分类个数NumPropertySets、属性分类1IdOffsetElement1和属性分类2IdOffsetElement2,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示IdOffsetElement1有效,当为2时,IdOffsetElement1和IdOffsetElement2都有效。优选地,所述自定义属性的分类信息包括自定义属性分类个数NumPropertySets、文档属性DocumentSummaryInformation和自定义属性UserDefinedProperties,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示DocumentSummaryInformation有效,当为2时,DocumentSummaryInformation和UserDefinedProperties都有效。优选地,所述属性类型propId为CODEPAGE时,其表示当前属性数据采用的字符编码格式,当值为0x04B0时,表示UNICODE方式,当值为-535时表示为UTF-8,其他表示ANSI。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本专利技术通过分析Office文档的二进制数据,根据文档中属性的存放原理,将Office文档中的属性文字全部提取出来,相对于使用二次接口开发和JAVAOPI技术接口提取文档属性中的文字,通过分析二进制文件并提取文件属性中文字可支持跨平台,不仅支持Windows系统而且支持Linux等系统,且效率高,通过二进制读取文件,并进行精确定位处理,执行效率显著提高,另外程序包小,所有实现均通过手动编码和调用系统API函数,不依赖任何第三方程序文件。本专利技术不限制于Office文件的文字提取,凡是采用Office存放原理的文件都可采用此方法提取文字,如金山Office等。附图说明图1为本专利技术实施例中所提供的一种解析Office二进制格式并提取文档属性文字的方法流程图;图2为本专利技术实施例中所提供的一种解析Office二进制格式并提取文档属性文字的系统框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的本文档来自技高网
...

【技术保护点】
1.一种解析Office二进制格式并提取文档属性文字的方法,其特征在于,所述方法包括以下步骤:/nS1、以二进制方式打开Office文档,获取所有\005SummaryInformation数据流以及\005DocumentSummaryInformation数据流;/nS2、在两种数据流中获取基本属性和自定义属性的分类信息;/nS3、对于基本属性,读取基本属性中属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出属性信息;/nS4、对于自定义属性,分别读取自定义属性中文档属性和自定义属性的属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出文档属性和自定义属性信息。/n

【技术特征摘要】
1.一种解析Office二进制格式并提取文档属性文字的方法,其特征在于,所述方法包括以下步骤:
S1、以二进制方式打开Office文档,获取所有\005SummaryInformation数据流以及\005DocumentSummaryInformation数据流;
S2、在两种数据流中获取基本属性和自定义属性的分类信息;
S3、对于基本属性,读取基本属性中属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出属性信息;
S4、对于自定义属性,分别读取自定义属性中文档属性和自定义属性的属性类型propId和数据的起始地址propOffset,结合每条属性信息中数据类型,取出文档属性和自定义属性信息。


2.根据权利要求1所述的一种解析Office二进制格式并提取文档属性文字的方法,其特征在于,所述基本属性的分类信息包括默认属性分类个数NumPropertySets、属性分类1IdOffsetElement1和属性分类2IdOffsetElement2,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示IdOffsetElement1有效,当为2时,IdOffsetElement1和IdOffsetElement2都有效。


3.根据权利要求1所述的一种解析Office二进制格式并提取文档属性文字的方法,其特征在于,所述自定义属性的分类信息包括自定义属性分类个数NumPropertySets、文档属性DocumentSummaryInformation和自定义属性UserDefinedProperties,其中属性分类个数NumPropertySets表示属性分类有效的数量,当为1时,表示DocumentSummaryInformation有效,当为2时,DocumentSummaryInformation和UserDefinedProperties都有效。


4.根据权利要求1-3任意一项所述的一种解析Office二进制格式并提取文档属性文字的方法,其特征在于,所述属性类型propId为CODEPAGE时,其表示当前属性数据采用的字符编码格式,当值为0x04B0时,表示UNICODE方式,当值为-535时表示为UTF-8,其他表示ANSI。


...

【专利技术属性】
技术研发人员:苗功勋董盼山崔新安王金国魏东晓
申请(专利权)人:中孚安全技术有限公司中孚信息股份有限公司北京中孚泰和科技发展股份有限公司南京中孚信息技术有限公司
类型:发明
国别省市:山东;37

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

1
相关领域技术
  • 暂无相关专利