1

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

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

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

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

4

1 回答 1

2

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

在此处输入图像描述

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

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

于 2013-06-04T17:52:07.220 回答