【发布时间】:2021-06-12 00:23:03
【问题描述】:
我目前正在分析一组 PDF 文件。我想知道有多少 PDF 文件属于这 3 个类别:
- 以数字方式创建的 PDF:文本存在(可复制)并且保证正确,因为它是直接创建的,例如来自Word
- 仅图像 PDF:扫描文档
- 可搜索的 PDF:扫描的文档,但使用了 OCR 引擎。 OCR 引擎将文本放在图像“下方”,以便您可以搜索/复制内容。由于 OCR 非常好,因此大多数情况下这是正确的。但不保证正确。
在我的域中识别纯图像 PDF 很容易,因为每个 PDF 都包含文本。如果我无法提取任何文本,它只是图像。但是我怎么知道它是“只是”一个可搜索的 PDF 还是一个数字创建的 PDF?
顺便说一句,它并不像我看到的扫描文档那样简单地查看生产者字段,其中生产者字段显示为“Microsoft Word”。
注意:作为人类,这很容易。我只是放大文字。如果我看到像素,它“只是”可搜索的。
以下是用于测试解决方案的 3 个示例 PDF 文件:
- Digitally Created PDF
- Scanned PDF: 嗯.. 不是真的;我使用脚本创建图像,然后将它们组合成 PDF。但这仅意味着质量非常好。它应该与扫描非常相似。
- Searchable PDF
我尝试/想到了什么
- 使用创建者/制作者:我在扫描的文档中看到“Microsoft Word”。这也很乏味。
- 嵌入式字体:您可以extract embedded fonts。这个想法是扫描的文档不会嵌入字体,而只是使用默认字体。从这个例子可以看出,这个想法是错误的。
【问题讨论】:
-
如果有一个页面那么大的图片却有文字?
-
@Nathan 不,它没有。虽然问题似乎相同,但答案集中在文本提取部分。我对文本提取不感兴趣。我想知道文档是否经过 OCR 处理。
-
@Nathan This answer 试图回答我的问题(我认为),但它是一个 bash 脚本而不是 Python 代码
-
@MartinThoma 这个答案会两次渲染 PDF:一次是保留文本,一次是剥离文本。然后它会在输出页面之间进行成对的图像比较。