一种识别PDF文档中水印的方法与流程

文档序号:11287412阅读:1461来源:国知局
本发明属于pdf文件内容处理与分析的
技术领域
:,本发明涉及一种识别pdf文件中水印的方法。
背景技术
::pdf文档中经常出现水印用于标识该文档的版权、状态或其他附加信息,比如页面背景带“草稿”字样,提示文档未正式发表。pdf内容提取场景,如转换为其他格式(word文档)或针对文字内容进行分析处理等,都需要识别水印信息,以免将它们混入正文干扰内容解析。pdf格式标准中并没有独立的“水印”概念,水印内容同样是通过pdf命令绘制,即将文档记录的颜色、字体、大小、位置、透明度等指令显示在页面上,与正文数据操作完全相同,所以无法直接通过程序解读和区分水印信息。然而,人眼却可以很容易辨别出水印:从构成角度看,水印可分为文字和图片(pdf格式中的位图bitmap,下面不再赘述)两种;一般会显示相同或有规律的内容,并与正文有明显的风格(字体、字号等)差别;出现位置可以是正文下方作为内容背景,也可以是半透明状态覆盖在正文之上;另外水印通常都在页面特定位置出现,每页或至少正文页面都有。基于这些观察,本发明提出一种方法,利用水印显示规律自动识别pdf文档页面上的水印。技术实现要素:本发明所要解决的技术问题是提供一种识别pdf文件中的水印的方法,能够解析页面上的水印内容并标识其所在位置。本发明解决上述技术问题的技术方案如下。步骤1:提取pdf文字、位图元素内容及位置信息,根据位置计算指纹并计数。指纹是从内容中(此处即是位置)提取的关键信息,可以代表所指向的内容,相同指纹可以统计出现次。步骤2:筛选(计数>页数/2)的指纹集合,查找相应指纹位置的元素。步骤3:遍历备选指纹,如果指纹对应的都是文字元素,则进行步骤4处理;对应均为位图元素则进入步骤5。步骤4:提取该指纹对应的文字,如果相同或满足递增、递减规律则判定为文字水印。步骤5:提取指纹对应的位图,如果相同则判定为图片水印。在以上处理流程中,还涉及通过元素位置坐标参数,生成文本指纹方法;文字元素相同通过字体、字号、颜色、旋转参数综合对比判断;文字内容递增递减规律通过差分方法判断;相同图片对比位图md5哈希值方法判断等实施细节。本发明的有益效果是:通过遍历pdf文件提取文本和位图元素,利用位置信息生成指纹。指纹生成方法在后面介绍。由于pdf文档按页显示内容,不同页面但同一位置的页面元素,可以通过条件(计数>页数/2)筛选出来,它们是潜在的水印。然后,针对备选指纹及指纹对应的内容判断,如果是文本内容,需要判断是否相同,或者满足某种变化规律,这是因为某些文本水印会附带页码、日期、项目编号等规律信息,满足条件则判定为水印;否则是图片内容,则直接判断位图数据是否相同,是则判定为图片水印。本发明利用指纹(计数)处理,避免存储、计算图文内容信息本身,节省分析开销。此外,针对文本、图片水印分别进行内容判断,可以大大拓展识别算法的适用性,提高识别率。在上述处理流程中,本发明还阐述了位置指纹生成方法,相同/规律文字及相同图片判断条件等细节,综合解决pdf文档水印识别问题。附图说明图1为本发明提出的识别pdf文件中水印的方法的流程图。具体实施方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。图1为本发明提出的识别pdf文件中的水印的方法的流程图。这里pdf是portabledocumentformat的缩写,意为便携文件格式,是一种电子文件格式,pdf文件指的是采用pdf格式的电子文件。该格式常用于保存和分发复杂排版的文档,名称中的便携(portable)是指在各种硬件设备和软件平台上都可以获得相同的排版效果,因此特别适合用于要求准确显示、不可修改的文档。正因为这种不可修改的特性,生成文档时常常会添加水印,作用与纸质水印类似。本发明中,pdf文件中的水印可以是文字或图片(位图),出现在文档页面的固定位置,标识文档的版权、状态或其他附加信息。如图1所示,该方法包括。步骤101:提取pdf文字、位图元素内容及位置信息,根据位置计算指纹并计数。指纹是从内容中(此处即是位置)提取的关键信息,可以代表所指向的内容,相同指纹可以统计出现次。每个对象都包含显示的位置信息,可以表示为矩形,通过右下角位置坐标(x,y)和宽高(w,h)参数确定。然后将位置转换为指纹字符串“x,y,w,h”,其中每项数字都转为字符串,截断若干小数位降低匹配敏感度。举例说明,某坐标为(12.3212,20.6833),宽高分别为(45.5000,100.7300)的文字元素,得到指纹:“12.3,20.6,45.5,100.7”,这里保留一位小数。提取过程中,如果指纹再次出现则计数累加。最后,计数代表某个位置上元素出现了几次。通过指纹转换和截断小数点的方法,可以节约比较计算开销,同时忽略特别小的位置偏移,因为源头上计算机无法精确存储浮点型数据,所以引入截断机制可以提高本步骤的容错性。步骤102:筛选(计数>页数/2)的指纹集合,查找相应指纹位置的元素。本步骤筛选计数大于一半文档页数的指纹集合。步骤101已经解释过计数的含义,多个页面同一位置出现元素是水印的特征。设定数量大于一半页数,是因为某些具有装订线的文档,相邻页水印位置对称分布(隔页相同);另一方面,通常封面和底页不带有水印。实践中还可以人工指定该阈值以更适合识别场景。查找相应指纹位置的元素,同一指纹一般对应多个元素,在后续步骤中进一步判断。步驟103:遍历备选指纹,如果指纹对应得都是文字元素,则进行步骤105处理,否则进入步骤104。本步骤中的"遍历"是一种计算机运算形式,指的是沿着某条搜索路线,依次对集合中每个结点均做一次且仅做一次访问。遍历的方法以及上述的集合的概念属于计算机领域的公知常识,在此不做赘述。由于文本和位图处理方式不同,我们将满足位置条件的元素分为两类处理。指纹对应计数的内容均为文字元素,则满足条件,转入105继续进行内容检测。步骤104:如果指纹对应得都是位图元素,则进行步骤106。本步骤是103的后继判断,如果同一指纹对应元素既有文本又有位图也说明不是水印,尽管这种情况非常少见。步骤105:提取该指纹对应的文字,如果相同或满足递增、递减规律则判断为文字水印。步骤101至103主要着眼于元素位置,缩小判断范围,本步骤判断对应文字元素本身信息。首先,检查文字风格,包括文本字体,字号,颜色、旋转参数相同则继续判断。而后针对文字内容,如果完全相同,则判定为水印,如果不同,但是存在满足递增、递减规律的数字则判定为水印。其中,文字风格和内容是pdf格式固有信息,正是依赖这些指令,文档才得以精确显示。数字判断可以使用正则表达式,该算法是计算机领域的广泛使用的字符串处理方案,不再详细解释。递增、递减数字判断是通过差分计算获得,原理是数学中的等差数列。步骤106:提取指纹对应的位图,如果相同则判断为图片水印。pdf格式中的位图是以原始数据(二进制)方式存储,无论是文档多处引用,还是将同一位图多次存储(较少见),总能提取图片数据。为了比较图片数据相同,我们对图片数据做md5运算,计算该数据的摘要,摘要相同则说明是相同位图,判定为水印。其中,md5算法可以对数据生成一组128位的哈希值,用来确保信息传输完整性,接受消息(数据)时,验证附带md5哈希值即可判断是否与发送消息相同。我们分别计算图片的md5值,用来判断数据是否相同,避免直接比较二进制数据。步骤107:记录水印信息。在105、106步骤基础上,对判定为水印的指纹逆向转换:通过逗号(,)分割字符串,然后将四部分字符串转为数字,就可以得到相应的位置坐标。结合之前的类型型信息,得到一个文档的水印信息。本发明具有以下优点:通过遍历pdf文件,利用水印的一般特点,首先针对页间位置固定,设计了一种简单指纹,缩小查找范围,提高搜索效率。然后,分别定义文本水印和图片水印相同或相似的规则,进一步判断满足位置条件元素是否为水印。这样获得了文档的水印信息,便于后续对内容精确处理和分析。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1