一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种保护Office电子文档印章图像的装置和方法与流程

2022-03-01 21:41:49 来源:中国专利 TAG:

一种保护office电子文档印章图像的装置和方法
1.技术领域:本发明是基于office电子文档的电子签章领域,涉及一种保护office电子文档印章图像的装置和方法。
2.

背景技术:
近年来,随着政务信息化及企业信息化不断发展,越来越多的企业和机关,对电子印章图像的安全性要求也越来越高。为了避免电子印章图像泄露出去,传统常用的方法是限制用户编辑、拷贝文档,这给用户日常办公带来了诸多不便。
3.传统方案普遍采用的是只读/窗口锁定的保护模式方式,这类保护方式对office复合文档有效(也就是doc类型的文档);但是对于docx类型的文档,窗口保护模式并不能有效的保护电子印章图像。同时这种文档保护方式,牺牲了用户办公软件操作的友好性。
4.微软office办公软件版本众多,如office2003、office2007、office2013、office2016、office2019等版本,这些版本对文档锁定保护支持效果不一致,有些版本能够拷贝泄露出去,所以通过文档只读/窗口锁定的保护方式,不能起到全面保护印章图像的效果。
5.国内金山、永中等办公软件不断发展,日常办公中也越来越普遍。这些办公软件对文档只读/窗口锁定的保护支持也存在差异,所以,也存在印章图像泄露出去的问题。
6.因此,就需要一种更稳定,更全面的电子印章防拷贝方法,且适用于所有office 版本及不同办公软件方法,既能让用户拷贝文档的内容,又能保护电子印章图片的方法。
7.传统电子印章保护采用只读保护、窗口锁定保护、图章防护方式、实时清空剪切板的缺点:1、文档只读锁定模式,这种保护模式下,文档只能阅读,不能修改,用户可以选择文档任意位置。当用户全选文档,然后再复制时,电子印章图像能被一起拷贝出去。
8.2、文档窗口锁定保护模式,这种保护模式下,用户不能选择文档元素,文档光标一直放在第一页开始位置。doc格式文档选择电子印章图象时,文档光标将自动跳转到文档第一页开始位置,而docx格式文档,则可以直接选择电子印章图像,并允许拷贝,而且不会跳转到第一页开始位置。然而docx格式文档是当前流式主流文档格式,在金山、永中办公软件中均可以拷贝出去。其次,文档窗口锁定保护模式给用户操作带来诸多不便,文档阅读过程中误操作点击页面时,经常自动跳转到第一页开始位置。
9.3、图章防护,为了避免原始印章图像拷贝出去,对原始印章图像进行水印、雾化等处理。这种方案虽然能够保护原始印章,但是用户阅读文档时,也看不到原始印章。只有打印时,才输出原始印章图像。这种方式效率低下,流程控制复杂、不直观、容易出错。
10.4、实时清空剪切板,为了避免原始印章图像拷贝处理,实时清空剪切板内容。这种方式下,虽然达到了保护印章图像的目的,但用户不能拷贝文档任何内容,非常不友好。
11.本发明的目的:本发明能够克服传统电子印章图像保护的上述缺点,且可以不依赖office vba接口实现电子印章图像保护,本发明采用的是windows剪切板技术,首先通过监听windows操
作系统剪切板消息,最先获取用户拷贝的内容a,然后根据电子签章对象的特殊标识,将电子签章对象从剪切板信息中直接过滤掉,保留用户选中的文档内容b,按照windows剪切板消息格式,将内容b重新封装成剪切板数据c,清空windows剪切板数据,将数据c放入剪切板内。用户可以按照办公软件提供的操作方式拷贝文档内容;又可以保护文档中的电子印章图像,达到了电子印章保护的目的,这样就可以避免上述问题的缺陷,可以更稳定、更全面的支持各种office版本、及不同厂家的办公软件。
12.本发明的有益效果:1、在办公软件里,允许用户任意选择复制内容,而电子印章图像拷贝不出去,从而避免电子签章图像泄露。
13.2、兼容多个厂家的办公软件及其不同版本,降低对办公软件的依赖性。
14.3、发明装置结构简单,剪切板签章图像数据精确过滤,稳定高效。


技术实现要素:

15.本发明克服现有技术的不足,提供了一种保护office电子文档印章图像的装置和方法。
16.一种保护office电子文档印章图像的装置,包括剪切板监听模块,剪切板数据截获模块,电子签章对象过滤模块、剪切板数据封装模块、剪切板数据回写模块,其特征在于:所述剪切板监听模块按照windows操作系统剪切板监听技术,调用windows 系统的api 接口setclipboardviewer来将主窗口win注册为剪切板查看器窗口;为了确保文档内容拷贝时,最先获取剪切板消息,需要定时将当前窗口设置为剪切板查看器窗口,在所述剪切板查看器窗口的窗口执行函数拦截wm_changecbchain和wm_drawclipboard消息,当有所述剪切板查看器加入或者退出windows剪贴板监控链时,将收到wm_changecbchain,需确保整个剪切板查看器监听链的联通性,所述windows剪贴板监控链由多个剪切板查看器组成,所述所有windows剪贴板监控链上的剪切板查看器都可以获取剪切板数据信息;当剪切板数据内容发生变化时,剪切板查看器链表上的所有查看器将收到wm_drawclipboard消息。
17.所述剪切板数据截获模块使用windows api接口openclipboard打开windows剪切板;然后使用isclipboardformatavailable接口来检测是否存在cf_html格式数据,如果存在,则使用getclipboarddata接口直接读取剪切板数据信息a,使用closeclipboard关闭windows剪切板;如果不存在则直接使用closeclipboard关闭剪切板,所述cf_html格式数据为html format格式数据;所述电子签章对象过滤模块将剪切板数据信息a按照html format格式,提取html数据b,使用html解析工具解析html数据b,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开头,进一步比较id属性值是否在签章列表sigs内,如果存在,则删除该元素;否则,继续遍历下一个元素;重复上述操作,直到html所有元素遍历完成为止, html解析工具将过滤过后的html数据转换成文本字符串c;如果遍历所有元素,不存在符合上述要求的v:shape元素,则剪切板数据信息a不做任何处理; 所述电子签章对象过滤模块将剪切板数据信息a按照html format格式,提取html数据b,使用html解析工具解析html数据b,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开
头,进一步比较id属性值是否在签章列表sigs内,所述签章列表sigs包含电子印章的id属性值,如果存在,则删除该元素;否则,继续遍历下一个元素;重复上述操作,直到html所有元素遍历完成为止, html解析工具将过滤过后的html数据转换成文本字符串c;如果遍历所有元素,不存在符合上述要求的v:shape元素,则剪切板数据信息a不做任何处理;所述office印章图像在文档中以office shape图像对象形式展示,且以kg开头命名图像对象,签章辅助信息通过office shape 图像对象属性存储,以kgd开头命名这类图像对象; 所述office办公软件在拷贝文档时,office shape图像对象在剪切板html format里面使用v:shape元素标识,id属性标识每个v:shape对象,代表office shape 图像对象名称。
18.所述剪切板数据封装模块按照剪切板html format格式规范,对过滤后的文本字符串c进行封装,同时,在html format头信息中,增加“filterflag”字段,默认值为“ok”,组装成剪切板数据包d。
19.剪切板数据回写模块:使用openclipboard打开windows剪切板,然后使用emptyclipboard清空剪切板原始数据,再使用setclipboarddata接口回写剪切板数据包d,最后使用closeclipboard关闭剪切板,windows系统将向当前剪切板查看器发送wm_drawclipboard消息。
20.一种保护office电子文档印章图像的方法,其特征在于:包括以下步骤:s1:实时监听剪切板,获取office办公软件主窗口win,改写主窗口win的窗口执行过程,使用新的窗口执行函数wndproc,,启动所述剪切板监听模块,定时在文档拷贝事件前,将当前office办公软件主窗口win设置为最新的剪切板查看器窗口,确保主窗口win为windows当前剪切板查看器,最先获得剪切板事件wm_drawclipboard。
21.s2:截获剪切板数据。当剪切板数据内容发生变化时,主窗口win的窗口执行函数wndproc将最先获取wm_drawclipboard消息,使用剪切板数据截获模块获取html format格式剪切板数据c,如果剪切板数据c的头信息中存在filterflag字段,说明剪切板数据c已经被处理过,剪切板数据c不做任何处理,则按照windows剪贴板查看器链接列表,直接将wm_drawclipboard事件发送给下一个剪切板查看器窗口;如果不存在filterflag字段,说明剪切板数据c没有被过滤,需要按照步骤s3做三进一步处理。
22.s3:过滤电子签章信息,将剪切板数据信息c按照html format格式,从剪切板数据c中提取html数据d,使用电子签章对象过滤模块分析html数据d,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开头,进一步比较id属性值是否在签章列表sigs内,如果存在,则删除该元素;否则,继续遍历下一个元素。重复上述操作,直到html所有元素遍历完成为止,将过滤后的html数据转换成文本字符串e。如果遍历html所有元素,未检测到元素名称为v:shapes,且id属性值为“kg_”或“kgd_”标签开头,且id属性值在签章列表sigs,说明剪切板数据c,不存在签章信息数据,则按照windows剪贴板查看器链接列表,直接将wm_drawclipboard事件发送给下一个剪切板查看器窗口。
23.s4:剪切板数据封装,使用剪切板数据封装模块,按照剪切板html format格式规范,对过滤后的文本字符串e进行封装,同时,在html format头信息中,增加“filterflag”字段,默认值为“ok”,组装成剪切板数据包f。在数据包f中增加“filterflag”字段,说明数据包f是已经被过滤的数据,在步骤s2中,发现剪切板头信息中存在filterflag字段,剪切板数据不做任何处理,这样可以提升签章信息过滤效率。
24.s5:剪切板数据回写,使用所述剪切板数据回写模块,打开windows剪切板,清空原先的数据,将剪切板数据包f放入windows剪切板。windows系统将向当前剪切板查看器发送wm_drawclipboard消息,同时终止当前wm_drawclipboard事件发送给下一个窗口,避免其他剪切板查看器窗口处理重复的消息。
附图说明
25.图1是本发明的结构原理图;图2是本发明的剪切板查看器相关代码;图3是本发明的剪切板html format格式实例;图4是本发明的电子签章对象过滤模块相关代码;图5是本发明的电子签章对象过滤模块相关代码;图6是本发明的剪切板数据封装模块相关代码;图7是本发明的结构流程图;图8是本发明的监听剪切板流程的相关代码;图9是本发明的监听剪切板流程的相关代码;具体实施方式:参阅附图,一种保护office电子文档印章图像的装置,包括剪切板监听模块,剪切板数据截获模块,电子签章对象过滤模块、剪切板数据封装模块、剪切板数据回写模块,其特征在于:所述剪切板监听模块按照windows操作系统剪切板监听技术,调用windows 系统的api 接口setclipboardviewer来将主窗口win注册为剪切板查看器窗口;为了确保文档内容拷贝时,最先获取剪切板消息,需要定时将当前窗口设置为剪切板查看器窗口,在所述剪切板查看器窗口的窗口执行函数拦截wm_changecbchain和wm_drawclipboard消息,当有所述剪切板查看器加入或者退出windows剪贴板监控链时,将收到wm_changecbchain,需确保整个剪切板查看器监听链的联通性,所述windows剪贴板监控链由多个剪切板查看器组成,所述所有windows剪贴板监控链上的剪切板查看器都可以获取剪切板数据信息;当剪切板数据内容发生变化时,剪切板查看器链表上的所有查看器将收到wm_drawclipboard消息。
26.所述剪切板数据截获模块使用windows api接口openclipboard打开windows剪切板;然后使用isclipboardformatavailable接口来检测是否存在cf_html格式数据,如果存在,则使用getclipboarddata接口直接读取剪切板数据信息a,使用closeclipboard关闭windows剪切板;如果不存在则直接使用closeclipboard关闭剪切板,所述cf_html格式数据为html format格式数据;所述电子签章对象过滤模块将剪切板数据信息a按照html format格式,提取html数据b,使用html解析工具解析html数据b,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开头,进一步比较id属性值是否在签章列表sigs内,如果存在,则删除该元素;否则,继续遍历下一个元素;重复上述操作,直到html所有元素遍历完成为止, html解析工具将过滤过后的html数据转换成文本字符串c;如果遍历所有元素,不存在符合上述要求的v:shape元素,则剪切板数据信息a不做任何处理; 所述电子签章对象过滤
模块将剪切板数据信息a按照html format格式,提取html数据b,使用html解析工具解析html数据b,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开头,进一步比较id属性值是否在签章列表sigs内,所述签章列表sigs包含电子印章的id属性值,如果存在,则删除该元素;否则,继续遍历下一个元素;重复上述操作,直到html所有元素遍历完成为止, html解析工具将过滤过后的html数据转换成文本字符串c;如果遍历所有元素,不存在符合上述要求的v:shape元素,则剪切板数据信息a不做任何处理;所述office印章图像在文档中以office shape图像对象形式展示,且以kg开头命名图像对象,签章辅助信息通过office shape 图像对象属性存储,以kgd开头命名这类图像对象; 所述office办公软件在拷贝文档时,office shape图像对象在剪切板html format里面使用v:shape元素标识,id属性标识每个v:shape对象,代表office shape 图像对象名称。
27.所述剪切板数据封装模块: 按照剪切板html format格式规范,对过滤后的文本字符串c进行封装,同时,在html format头信息中,增加“filterflag”字段,默认值为“ok”,组装成剪切板数据包d。
28.进一步:html format头字段中新增filterflag字段,表示当前剪切板数据包已经被处理过。在剪切板数据回写模块设置剪切板数据后,剪切板数据截获模块将获取修改后的剪切板数据,当电子签章对象过滤模块解析html format格式时,如果发现存在filterflag头字段,则剪切板数据包不做任何处理,直接向下一个windows剪切板查看器窗口发送wm_drawclipboard消息,提高剪切板数据过滤效率。
[0029] 所述剪切板数据封装模块按照剪切板html format格式规范,对过滤后的文本字符串c进行封装,同时,在html format头信息中,增加“filterflag”字段,默认值为“ok”,组装成剪切板数据包d。
[0030]
所述剪切板数据回写模块使用openclipboard打开windows剪切板,然后使用emptyclipboard清空剪切板原始数据,再使用setclipboarddata接口回写剪切板数据包d,最后使用closeclipboard关闭剪切板,windows系统将向当前剪切板查看器发送wm_drawclipboard消息。
[0031]
一种保护office电子文档印章图像的方法,其特征在于:包括以下步骤:s1:实时监听剪切板,获取office办公软件主窗口win,改写主窗口win的窗口执行过程,使用新的窗口执行函数wndproc,,启动所述剪切板监听模块,定时在文档拷贝事件前,将当前office办公软件主窗口win设置为最新的剪切板查看器窗口,确保主窗口win为windows当前剪切板查看器,最先获得剪切板事件wm_drawclipboard。
[0032]
s2:截获剪切板数据。当剪切板数据内容发生变化时,主窗口win的窗口执行函数wndproc将最先获取wm_drawclipboard消息,使用剪切板数据截获模块获取html format格式剪切板数据c,如果剪切板数据c的头信息中存在filterflag字段,说明剪切板数据c已经被处理过,剪切板数据c不做任何处理,则按照windows剪贴板查看器链接列表,直接将wm_drawclipboard事件发送给下一个剪切板查看器窗口;如果不存在filterflag字段,说明剪切板数据c没有被过滤,需要按照步骤s3做进一步处理。
[0033]
s3:过滤电子签章信息,将剪切板数据信息c按照html format格式,从剪切板数据c中提取html数据d,使用电子签章对象过滤模块分析html数据d,遍历html所有元素,如果元素名称为v:shape,且id属性值为“kg_”或“kgd_”开头,进一步比较id属性值是否在签章
列表sigs内,如果存在,则删除该元素;否则,继续遍历下一个元素。重复上述操作,直到html所有元素遍历完成为止,将过滤后的html数据转换成文本字符串e。如果遍历html所有元素,未检测到元素名称为v:shapes,且id属性值为“kg_”或“kgd_”标签开头,且id属性值在签章列表sigs,说明剪切板数据c,不存在签章信息数据,则按照windows剪贴板查看器链接列表,直接将wm_drawclipboard事件发送给下一个剪切板查看器窗口。
[0034]
s4:剪切板数据封装,使用剪切板数据封装模块,按照剪切板html format格式规范,对过滤后的文本字符串e进行封装,同时,在html format头信息中,增加“filterflag”字段,默认值为“ok”,组装成剪切板数据包f。在数据包f中增加“filterflag”字段,说明数据包f是已经被过滤的数据,在步骤s2中,发现剪切板头信息中存在filterflag字段,剪切板数据不做任何处理,这样可以提升签章信息过滤效率。
[0035]
s5:剪切板数据回写,使用所述剪切板数据回写模块,打开windows剪切板,清空原先的数据,将剪切板数据包f放入windows剪切板。windows系统将向当前剪切板查看器发送wm_drawclipboard消息,同时终止当前wm_drawclipboard事件发送给下一个窗口,避免其他剪切板查看器窗口处理重复的消息。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献