如何识别需要 OCR 的 PDF 文件?

Posted

技术标签:

【中文标题】如何识别需要 OCR 的 PDF 文件?【英文标题】:How to identify PDF files that need OCR? 【发布时间】:2011-12-06 03:41:51 【问题描述】:

我有超过 30,000 个 pdf 文件。有些文件已经是 OCR,有些不是。有没有办法找出哪些文件已经过 OCR 处理,哪些 pdf 只是图像?

如果我通过 OCR 处理器运行每个文件,这将永远需要。

【问题讨论】:

【参考方案1】:

我会编写一个小脚本来从 PDF 文件中提取文本并查看它是否为“空”。如果有文本,则 PDF 已被 OCRed。您可以使用ghostscript 或XPDF 来提取文本。

编辑: 这应该可以帮助您开始:

foreach ($pdffile in get-childitem -filter *.pdf)
    $pdftext=invoke-expression ("\path\to\xpdf\pdftotext.exe '"+$pdffile.fullname+"' -");
    write-host $pdffile.fullname
    write-host $pdftext.length;
    write-host $pdftext;
    write-host "-------------------------------";

不幸的是,即使您的 PDF 中只有图像pdftotext 也会提取一些文本,因此您必须做更多的工作来检查您是否需要对 pdf 进行 OCR。

【讨论】:

感谢您的回答。至少你给了我一些思考。可以用 ghostscript 或 xpdf 构建 powershell 脚本吗?你有什么方便我可以试试的吗?再次感谢。 在我的回答中添加了一些脚本 @Fuji-H2O 我正在寻找相同的解决方案。我需要检查 pdf 是否至少有 1 张图片。我知道这是一个非常古老的问题,但如果你记得,请帮助我解决问题。 如果pdf既有文字又有图片怎么办?【参考方案2】:

XPDF 以不同的方式为我工作。但不确定这是正确的方法。

我的带有图像的 PDF 也提供了文本内容。所以我使用 pdffonts.exe 来验证字体是否嵌入到文档中。在我的情况下,所有图像文件都显示嵌入值“否”。

> Config Error: No display font for 'Symbol' 
> Config Error: No display font for 'ZapfDingbats' 
> name                                 type              emb sub uni object ID
> ------------------------------------ ----------------- --- --- --- --------- 
> Helvetica                            Type 1            no  no  no       7  0

所有可搜索的 PDF 都给出“是”

> Config Error: No display font for 'Symbol'
> Config Error: No display font for 'ZapfDingbats'
> name                                 type              emb sub uni object ID
> ------------------------------------ ----------------- --- --- --- ---------
> ABCDEE+Calibri                       TrueType          yes yes no       7  0
> ABCDEE+Calibri,Bold                  TrueType          yes yes no       9  0

【讨论】:

【参考方案3】:

我发现 TotalCmd 有一个插件可以处理这个问题: https://totalcmd.net/plugring/pdfOCR.html

pdfOCR 是 wdx 插件,用于发现 PDF 文件的页数 当前目录需要字符识别(OCR),即有多少 PDF 文件中的页面在其布局中没有可搜索的文本。这是 在为自己的文档准备 PDF 文件时最需要 或存档系统。通常在处理他们需要的 PDF 文件时 之前从扫描版本转换为文本可搜索形式 它们包含在任何文档中,以允许手动或 自动文本搜索。 Total Commander 的 pdfOCR 插件实现了一个 图书馆员的需求,通过呈现图像的页数 只有不包含任何文字。显示扫描页数 在“needOCR”列中。通过比较需要的OCR页数与 可以决定 PDF 文件是否需要的总页数 额外的 OCR 处理。

【讨论】:

【参考方案4】:

您可以使用桌面搜索工具“dtSearch”扫描文件夹或整个驱动器。在扫描结束时,它将显示所有“仅图像”PDF 的列表。此外,它还会显示“加密”PDF 列表(如果有)。

【讨论】:

以上是关于如何识别需要 OCR 的 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

PC端如何实现pdf转word

关于拆分PDF和OCR识别

基于Python实现对PDF文件的OCR识别

Acrobat提示PDF页面大小超过最大尺寸,OCR识别文本失败

基于百度OCR提取图像中的文本

进行OCR识别文本的时候提示PDF文档无法识别