首页 > 解决方案 > 如何区分数字创建的 PDF 和可搜索的 PDF?

问题描述

我目前正在分析一组 PDF 文件。我想知道有多少 PDF 文件属于这 3 个类别:

由于每个 PDF 都包含文本,因此在我的域中识别纯图像 PDF 很容易。如果我无法提取任何文本,它只是图像。但是我怎么知道它是“只是”一个可搜索的 PDF 还是一个数字创建的 PDF?

顺便说一句,这并不像我看到的扫描文档那样简单,因为我看到了 Producer 字段显示“Microsoft Word”的扫描文档。

注意:作为人类,这很容易。我只是放大文字。如果我看到像素,它“只是”可搜索的。

以下是用于测试解决方案的 3 个示例 PDF 文件:

我尝试/想到的

标签: pythonpdf

解决方案


使用 PyMuPDF,您可以轻松删除 @ypnos 建议所需的所有文本。

作为替代方案,您还可以使用 PyMuPDF 检查文本是否隐藏在 PDF 中。在 PDF 的相关“迷你语言”中,这是由命令触发的3 Tr(“文本渲染模式”,例如参见https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/的第 402 页pdf_reference_1-7.pdf)。因此,如果所有文本都受此命令的影响,则不会呈现任何文本 - 允许得出“这是一个 OCR 页面”的结论。


推荐阅读