我有一个带有水印的pdf。当开始扫描高亮显示任何在背景上有水印或注释的单词时,它会被选中,因为它首先在触点区域被找到。
我正在使用CGPDFScanner扫描文本。
我的问题是如何检测扫描文本是背景文本还是PDF格式的真实文本?如何区分标准文本和注释文本?
谢谢。
发布于 2015-06-20 08:15:27
一般来说,你没有机会可靠地区分“背景”和“真实”文本。文本是按某种顺序在页面的某个位置绘制的,前景、背景、普通文本是人类感知的问题,可能根本不反映在PDF内容流的结构中。
你可以尝试一些有教养的猜测,例如假设“真实”文本是强颜色的,而背景文本是浅色的,或者“真实”文本是以水平线排列的,而背景文本通常是对角线的,等等。但这毕竟是猜测,没有什么可以确定的。
另一方面,在标记PDF的情况下,您可能有机会,水印可能被标记为工件数据。
PS我刚刚看到你又分享了你的文件。如果您的文档中我提到的启发式方法能够工作,背景文本是灰色的,并以对角线打印。
因此,在扫描时,必须跟踪填充颜色和/或转换矩阵。一旦扫描仪找到文本,您就可以根据当前颜色和/或矩阵值知道它是背景还是前景。
但是,请注意,对于所有的文档来说,这并不是那么容易。
https://stackoverflow.com/questions/30937454
复制相似问题