解析PDF在不同页面中两次获得相同的文本

时间:2013-06-03 12:00:56

标签: parsing pdf text-extraction cgpdfscanner

我有一个包含2页的PDF文件。当我用解析器解析它时,在Ojective-C中,我有以下情况。

对于第一页,一切都很好,我有我应该拥有的文本(我在pdf阅读器中直观地看到,如预览,Adobe阅读器......)。对于第二页,我有第二页中看到的文本,加上第一页的文本的一部分,而不是第二页。

我尝试了其他解析器:pdftotext(xpdf),他们设法得到了正确的结果。 Pdfminer(在python中)https://pypi.python.org/pypi/pdfminer/,我得到了与我相同的结果。第一页中的部分文本被提取两次。

我的问题是:这怎么可能发生?你见过这种情况吗?如果文本确实出现在第二页中,为什么pdf读者不显示它?你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我通过Acrobat(使用“检查文档”)运行了您的文件,它告诉我其中有一些隐藏文本。看看下面的截图:

enter image description here

屏幕截图中的红色文字标记隐藏的内容。正如mkl所指出的那样,它出现在MediaBox外面,这使得在PDF查看器中查看文档时它不可见。这并不意味着文本就在那里。如果您查看内容流(解析器所做的内容),您仍然可以找到它。

您的解析器应该丢弃MediaBox之外的所有内容。通常可以选择这样做。我知道iText中有一个;我不知道其他解析器。