OFD文档处理方法、传输方法及系统与流程

文档序号:25519949发布日期:2021-06-18 20:06阅读:455来源:国知局
OFD文档处理方法、传输方法及系统与流程

本发明涉及文本处理技术领域,具体的涉及ofd文档处理技术。



背景技术:

目前政府各级部门之间在信创环境下,通过办公自动化系统(officeautomation,简称oa)传递信息越来越多地通过加盖了电子印章签名的ofd格式的电子文档收发来实现,不再使用传统的纸质文档。传统电子文档一般为红头红章版式,为避免盖了电子印章签名的ofd文档出系统后被滥用,对外传阅时需要将电子文档灰度化处理,将文档里文字、图片、印章签名元素,特别是其中的印章签名变灰后再传阅,确保灰度化处理后的ofd文档和打印后的文档均区别于原始文档。目前市面上灰度化方案存在如下缺陷:

对带印章签名ofd文档中的红色或蓝色印章签名转化为灰度印章图片,丢失了其印章签名属性,导致在灰度化后的ofd文档中,接收者无法区分以印章签名格式存在和以普通图片格式存在的印章,使得接收者无法判断文件灰度化前是否已经进行过签名操作。



技术实现要素:

本发明针对现有技术中的缺点,提供了一种能保留签名操作的ofd文档灰度化处理方法以及其对应的ofd文档传输方法和oa系统,并解决ofd文档传阅过程中被滥用问题。

为了解决上述技术问题,本发明通过下述技术方案得以解决:

一种ofd文档处理方法,包括ofd文档中电子印章的灰度化处理,

获取电子印章签名后每一电子印章生成的asn格式印章数据和asn格式签名值数据,解析出所述asn格式印章数据和asn格式签名值数据中的电子印章数据生成第一印章数据,对所述第一印章数据灰度化处理后,得到第二印章数据,将所述第二印章数据重新填入所述asn格式印章数据和asn格式签名值数据中。

可选的,还包括对ofd文档中文本数据灰度化处理。

可选的,枚举每个xml格式文本,递归搜索整个xml格式文本,获取名称包含color关键字的节点,读取其value属性的值,对所述value属性的值进行灰度化计算。

可选的,对ofd文档中除电子印章外其他图片灰度化处理后替换原图。

可选的,枚举所有图片格式文件,将图片文件解码后储存,读取解码后图片文件每个像素的颜色值,执行灰度化计算得到灰度值v,将图片文件中r,g,b,a值替换为v,v,v,a,所有像素颜色值处理完成后,对原图片数据进行覆盖保存。

可选的,获取每一电子印章的signedvalue.dat和seal.esl格式文件,解析出所述signedvalue.dat和seal.esl格式文件中的第一印章数据,读取所述第一印章数据的每个像素的颜色值,执行灰度化计算得到灰度值v,将第一印章数据中r,g,b,a值替换为v,v,v,a,所有像素颜色值处理完成后,生成第二印章数据,将所述第二印章数据重新填入所述signedvalue.dat和seal.esl格式文件中。

可选的,灰度化处理方法包括:对ofd文档中数据的原r、g、b数据分别乘以灰度系数,得到灰度值v。

可选的,灰度值v=r*0.299+g*0.587+b*0.114。

本发明还提供一种ofd文档传输方法,包括输出ofd文档方法,具体包括:

选择输出;

调用上述的ofd文档处理方法;

输出处理后的ofd文档。

本发明还提供一种系统,包括上述的ofd文档处理方法。

本发明的有益效果:

带印章签名ofd文档灰度化后,接收者使用ofd版式文件阅读器打开该文档后,阅读器能够识别到印章签名和普通的印章图片,并加以区别显示,接收者能够据此判断文件是否含有印章签名,增加文档的可信度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是实施例1所述ofd文档处理方法流程图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

名词解释和技术研发背景:ofd是开放版式文档(openfixed-layoutdocument)的英文缩写,也是我国电子文档交换和存储格式标准。ofd采用“容器+文档”的方式描述和存储数据。容器是一个虚拟存储系统,将各类数据描述文件按照一定的目录结构聚合起来,经zip算法压缩后,存为一个以.ofd为后缀名的文件。ofd文档内容主要包括图片、文本、资源等。

本实施例提供一种ofd文档处理方法,分别对ofd文档中包含的文本、图片和电子印章签名三种元素分别做灰度化处理。既保证ofd文档的传阅安全性,又能够实现有效性验证。

第一步:针对ofd文档文本,通过直接修改文本元素颜色属性来实现灰度化处理;

第二步:针对除电子印章以外的图片数据,枚举ofd文档中所有类型图片数据,对每张图片进行灰度化处理后替换原始图片;

第三步:ofd文档经电子印章签名后,针对每个电子印章签名,会新生成三个数据描述文件,分别是seal.esl、signature.xml和signedvalue.dat。其中,signedvalue.dat和seal.esl格式中含有印章图片。

灰度化处理时将signedvalue.dat和seal.esl格式中的印章图片解析出来后,采用第二步所述的方法,对解析出的印章图片灰度化处理,将处理后的图片重新填入signedvalue.dat和seal.esl文件原位置。

其中,seal.esl是asn格式印章数据,signature.xml是签名描述文件,signedvalue.dat是asn格式签名值数据。

以上三步所述的灰度化处理方法为:对ofd文档中数据的原r、g、b数据分别乘以灰度系数,得到灰度值v。

其中r:红色分量值,g:绿色分量值,b:蓝色分量值,计算公式为:

v=r*0.299+g*0.587+b*0.114,本实施例所述的相关的灰度化处理后的v(i)并不是定值,根据实际原数据参数变化,有利于对各种不同颜色量值的数据进行合理处理。同时相关的灰度系数可以进行调整,实际应用中可在一定范围内选取。

以下,对上述第一步至第三步进行进一步描述:

第一步:枚举每个xml格式文本,递归搜索整个xml格式文本,获取名称包含color关键字的节点(node),读取其value属性的值,对所述value属性的值进行灰度化计算。

该值一般由三个整型值组成,形如“r,g,b”,其中r代表红色分量,g代表绿色分量,b代表蓝色分量。将r,g,b三个值按照公式v=r*0.299+g*0.587+b*0.114计算出对应的灰度值v,将“v,v,v”替换原来的“r,g,b”。

根据上述描述,可知每个ofd文档中xml文本有多个,需要对每个xml格式文本进行处理。

第二步:枚举所有图片格式文件,将图片格式文件解码后读入内存,读取解码后图片文件每个像素的颜色值,执行灰度化计算得到灰度值v,将图片文件中r,g,b,a值替换为v,v,v,a,所有像素颜色值处理完成后,对原图片文件进行覆盖保存。

其中r代表红色分量,g代表绿色分量,b代表蓝色分量,a代表透明度。将r,g,b三个值按照公式v=r*0.299+g*0.587+b*0.114计算出对应的灰度值v,将“v,v,v,a”替换原来的“r,g,b,a”。所有像素颜色值处理完成后,重新覆盖保存。

进一步的,本实施例中a值不做任何处理,避免将原本背景透明的图片处理成背景不再透明。

本实施例中对所述的图片格式进行列举包括bmp、jpeg、png、tif等。

第三步:获取电子印章的signedvalue.dat和seal.esl格式文件,其中,seal.esl文件保存电子印章数据,signedvalue.dat文件保存电子签章数据,两个文件里面均含有印章图片。解析所述signedvalue.dat和seal.esl格式文件中的印章图片数据,读取所述印章图片数据的每个像素的颜色值,执行灰度化计算得到灰度值v,将图片文件中r,g,b,a值替换为v,v,v,a,所有像素颜色值处理完成后,将处理完成后的数据重新填入signedvalue.dat和seal.esl格式文件中。

具体的,根据上述描述,可知ofd文档中电子印章签名为n个,n大于等于0。系统按照存储位置依次读取每一个电子印章签名所产生的signedvalue.dat和seal.esl格式文件,解析出其中的印章图片数据,将印章图片灰度化处理后保存;直至遍历和处理完所有的印章图片数据所对应的signedvalue.dat和seal.esl文件。

实施例2:

本实施例提供一种ofd文档传输方法,包括导出ofd文档方法,具体包括:

选择导出;

调用实施例1所述的ofd文档处理方法;

输出处理后的ofd文档。

实施例3:

本实施例提供一种oa系统,收文单位通过oa系统接收ofd文档,可在oa系统打开查看到原始ofd文档(包括含有电子印章签章的ofd文档)。若收文单位需要将该ofd文档导出oa系统进行传阅,用户选择调用oa系统的ofd公文灰度化功能,该功能即为实施例1所述的ofd文档处理方法实现的功能。

oa系统将ofd公文读入内存,按照ofd格式规范,解析出ofd文档中包含的多个xml格式文本、图片、印章签名元素;oa系统执行实施例1所述的方法进行灰度化处理。

完成上述灰度化处理后,可将需要传阅的带有签章记号的ofd文档导出至其他系统传阅。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。

所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1