一种文本文档中数字水印的嵌入方法和装置制造方法及图纸

技术编号:9545477 阅读:269 留言:0更新日期:2014-01-08 21:43
本发明专利技术涉及一种文本文档中数字水印的嵌入方法和装置。该方法包括:将电子格式文本文档转换为EMF文件;打开转换后的原始的EMF文件,使用其文件头参数信息创建对应的目标EMF文件;遍历原始EMF文件中的所有GDI函数及其参数信息,判断GDI函数是否为TEXTOUT,若是则读取所有字体信息并嵌入水印信息,然后复制到目标EMF文件中;若否则直接将GDI函数复制到目标EMF文件中;处理完所有的原始EMF文件后,将所有嵌入水印信息后的目标EMF文件进行最终的输出转换操作。本发明专利技术能够解决各种电子格式文本文档和纸质文本文档中的水印信息嵌入问题,实现对于重要文本文档的安全防控、溯源追踪以及内容保护。

【技术实现步骤摘要】
一种文本文档中数字水印的嵌入方法和装置
本专利技术属于文档保护
,涉及一种文本文档中数字水印的嵌入方法,具体涉及EMF增强图元文件(EnhancedMetafile,EMF)中的数字水印嵌入方法和装置。
技术介绍
随着知识经济时代的快速到来,知识在现代企业竞争优势中的作用空前突出,知识的载体——电子文件,成为了现代企业运营中最宝贵、最重要的战略资源。同样在政府部门和企事业单位的办公环境中,电子文档成为信息交流和知识传递的必不可少的载体。由于在文档信息传播过程中,文档内容很容易被非法获取和篡改,因此对重要文档的保护显得尤为重要。纵观文本文档的传播方式主要有两种:a)以电子文件格式传播。在很多情况下,一个电子文档可能会在很多机器上流转,内容被很多人浏览。如果不能有效地掌握电子文档的流转过程,极易造成泄密事件的发生。b)通过打印、扫描、复印的方式以纸质文档形式进行传播,纸质文档一旦发生流失很难追溯至文档的来源。文本水印技术在基于文档的信息安全方面发挥着积极作用,可以有效地解决上述问题。比如将某些具有标识作用的信息,诸如文档生成时间、文档的归属等隐藏在涉密的文档数据中,这些隐秘信息在视觉上是不可见的。当文档被非法获取或复制时,通过特定的装置提取的隐藏在文本中信息可以追踪文本的源头以达到版权保护及追溯源头的作用。但是如何很方便地将水印信息嵌入到文本文件中存在着技术障碍。现有的方法中,有针对特定的电子文档编辑和浏览软件开发了相应的系统或者插件来完成水印信息的嵌入,比如微软Office办公文件或者PDF(PortableDocumentFormat)文件,这些软件系统本身对外提供了基于宏或者COM组件方式的开发接口,可以较为方便地进行二次开发。但是该方法的开发成本非常高:一方面要针对不同的文档软件系统开发不同的系统或者插件,而且大部分的软件不支持二次开发,比如大量的私有格式文件系统等;另外一方面,即使支持二次开发的软件系统也会有版本升级的问题,比如通用的MSOffice或者AdobeAcrobat软件。不同的版本之间的接口和COM(ComponentObject)组件存在一定的兼容性问题,软件系统一旦升级,水印系统可能会也要进行相应的改动升级后才能支持。因此该方法非常不灵活,通用性也比较差。如果要在打印的纸质文档中嵌入水印信息,利用上述方法进行水印信息嵌入后,还需要额外的个性化的打印输出操作,无法直接在打印输出的过程中嵌入水印信息。因此,为了方便快捷地在任意电子格式文本文档和纸质文本文档中嵌入水印信息,需要解决两个问题:1)要将各种电子格式文档统一转为一种文件格式,然后通过解析该文件格式能够准确地获取文档中的文本对象,从而通过修改文本对象属性嵌入水印信息;2)转换后的文件格式的解析过程要相对简单,比如PDF文件和PS(PostScript)文件解析过程就非常复杂,难度很大。另外PDF文件和PS文件只能通过Acrobat或者特定的软件系统才能完成打印输出,因此打印客户端需要额外安装相应的软件系统,既增加了工作量又提高了成本。而比较理想的文件格式就是EMF文件。所谓的EMF文件是一种矢量图形文件,在文件内部存储的是图形设备接口GDI(GraphicDevicesInterface)函数,不同于位图文件中的像素,克服了常见位图文件的诸多缺点,比如存储空间大,速度慢,图形放缩时严重失真等。EMF文件中记录着每一个GDI函数及其参数信息,显示时通过这些函数实现图形的重绘,具有存储空间小,图形缩放不失真的优点,真正做到与设备无关。EMF由文件头、GDI函数和EMF文件尾三部分组成。文件头里包含了图形创建时的作者信息、图形尺寸、GDI函数个数等内容。文件尾记录文件结束标志,中间的GDI函数是文件的主体,记录着图形中每一个GDI函数。应用程序打开EMF文件时执行各个GDI函数来绘制出图像,存储时将GDI函数写回EMF文件中。总之任何复杂的图形都能分解为直线、曲线、三角形、椭圆、文字等基本的图形对象,对这些图形对象的绘制均可通过系统中的GDI函数来完成。因此文档中的所有对象都可以用EMF文件来准确描述。
技术实现思路
本专利技术提供了一种文本文档中数字水印的嵌入方法和装置,用以解决现有技术中无法方便地获取各种电子格式文本文档内容中的文本对象数据问题,进而解决各种电子格式文本文档和纸质文本文档中的水印信息嵌入问题,并最终实现对于重要文本文档的安全防控、溯源追踪以及内容保护的目的。本专利技术的构思在于将各种电子格式文本文档统一转换为矢量的EMF格式文件,其中每页文档对应生成一幅EMF图像;进而读取每个EMF格式文件中记录的所有GDI函数及其参数信息得到所有的文本对象数据;通过修改文本对象的属性信息嵌入水印信息,并将嵌入水印后的文本对象保存到一个新建的EMF文件中;将嵌入水印后的EMF文件转换为其他电子格式文档,或者通过调用操作系统的API函数将EMF文件发送至实际物理打印机输出,实现了电子格式文本文档和纸质文本文档中嵌入水印信息的目的。从而得到了一种文本文档中数字水印的嵌入方法和装置。本专利技术的一种文本文档中数字水印的嵌入方法,包括如下步骤:步骤一,将电子格式文本文档内容数据转换为EMF文件,其中每页数据对应生成一个EMF文件,多页的电子格式文本文档对应生成多页的EMF文件集合;步骤二,打开一个原始的EMF文件,读取该文件的文件头参数信息,使用相同的参数信息创建对应的新的目标EMF文件;步骤三,遍历原始EMF文件中记录的所有GDI函数及其参数信息,判断读取的GDI函数是否为TEXTOUT,若是,读取所有字体信息并嵌入水印信息,并将修改后的文本对象复制到目标EMF文件中;若否,则直接将读取的GDI函数复制到目标EMF文件中;步骤四,判断是否处理完所有的原始EMF文件,若否,则分别执行步骤二和步骤三的操作;若是,则执行步骤五;步骤五,将所有嵌入水印信息后的目标EMF文件进行最终的输出转换操作。较佳地,所述的将电子格式文本文档内容数据转换为EMF文件时,应用程序调用操作系统提供的函数接口,以页为单位将文档内容数据保存为EMF格式文件,每一页对应生成一幅EMF图像;较佳地,所述的将电子格式文本文档内容数据转换为EMF文件时,应用程序通过虚拟的EMF打印机将文档数据输出为EMF文件;较佳地,所述的读取的所有字体信息包括字符编码、字体名称、字体大小、字符间距、字体形状、字体颜色、行间距;较佳地,所述的读取所有字体信息后,通过替换字库来嵌入水印信息,具体为:嵌入水印信息为“0”时,保持原有的字库类型不变,嵌入水印信息“1”时,将原有字库替换为修改后的字库;较佳地,所述的读取所有字体信息后,通过修改字符间距和行间距来嵌入水印信息;较佳地,步骤三中,若读取的原始EMF文件中记录的GDI函数为图像对象,则将图像数据拷贝至内存空间,调用数字图像水印算法嵌入水印信息后,再将修改过的内存空间复制到目标EMF文件中;较佳地,所述的将所有嵌入水印信息后的目标EMF文件进行最终的输出转换操作时,从EMF文件中逐条读取对操作系统函数接口的调用,按照PDF格式的标准转换为PDF文件,或者直接进行点阵化处理后输出为BMP、JPEG、GIF、TIFF、PNG图片文件,或者提本文档来自技高网
...
一种文本文档中数字水印的嵌入方法和装置

【技术保护点】
一种文本文档中数字水印的嵌入方法,其步骤包括:步骤一:将电子格式文本文档内容数据转换为EMF文件,其中每页数据对应生成一个EMF文件,多页的电子格式文本文档对应生成多页的EMF文件集合;步骤二:打开一个原始的EMF文件,读取其文件头参数信息,使用相同的参数信息创建对应的目标EMF文件;步骤三:遍历原始EMF文件中记录的所有GDI函数及其参数信息,判断读取的GDI函数是否为TEXTOUT,若是,读取所有字体信息并嵌入水印信息,并将修改后的文本对象复制到目标EMF文件中;若否,则直接将读取的GDI函数复制到目标EMF文件中;步骤四:判断是否处理完所有的原始EMF文件,若否,则分别执行步骤二和步骤三的操作;若是,则执行步骤五;步骤五:将所有嵌入水印信息后的目标EMF文件进行最终的输出转换操作。

【技术特征摘要】
1.一种文本文档中数字水印的嵌入方法,其步骤包括:步骤一:将电子格式文本文档内容数据转换为EMF文件,其中每页数据对应生成一个EMF文件,多页的电子格式文本文档对应生成多页的EMF文件集合;步骤二:打开一个原始的EMF文件,读取其文件头参数信息,使用相同的参数信息创建对应的目标EMF文件;步骤三:遍历原始EMF文件中记录的所有GDI函数及其参数信息,判断读取的GDI函数是否为TEXTOUT,若是,读取所有字体信息并嵌入水印信息,并将修改后的文本对象复制到目标EMF文件中;若否,则直接将读取的GDI函数复制到目标EMF文件中;在嵌入水印信息的过程中,根据嵌入水印信息的需要,将GDI函数分拆为多条GDI函数写入新的EMF文件中;在嵌入水印信息之前,对EMF文件中的TEXTOUT函数按照每个字符在页面中的位置进行排序,并将待嵌入的水印信息位串进行反排序,使得按照TEXTOUT记录顺序嵌入的水印信息位串和按照阅读习惯排列的字符序列所代表的水印信息位串保持一致;对于PDF文件,将其转换为EMF文件后,水印信息的嵌入方法是:将从EMF文件中读取的FILLPATH记录的文字曲线数据还原回文字对象,然后嵌入水印信息,包括以下步骤:Step1,读取EMF文件中FILLPATH记录,获取当前文字曲线区域的外接矩形;Step2,获取PDF文件中下一个字符的坐标位置信息和相关字体信息;Step3,判断读取的字符的坐标位置是否处在FILLPATH记录中文字曲线区域外接矩形的内部,若是,则该文字曲线区域可以恢复为文本对象,转入Step4;Step4,按照这个字符对应的字体信息,创建目标字体对象;Step5,嵌入水印信息,根据每个字符对应的信息位串设置目标字体类型;Step6,创建新的TEXTOUT记录,并输出到目标EMF文件中;Step7,结束整个嵌入过程;步骤四:判断是否处理...

【专利技术属性】
技术研发人员:李晓妮
申请(专利权)人:北京溯源鸿业科技有限公司
类型:发明
国别省市:

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

1