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

问题描述 投票:0回答:5

我有超过 30,000 个 pdf 文件。有些文件已经是 OCR,有些则不是。有没有办法找出哪些文件已经被 OCR 识别以及哪些 pdf 文件仅是图像?

如果我通过 OCR 处理器运行每个文件,那将需要很长时间。

pdf ocr
5个回答
5
投票

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

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

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
也会提取一些文本,因此您将需要做更多的工作来检查是否需要 OCR 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

1
投票

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

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


0
投票

以下脚本将查找需要 OCR 的文件。您需要从您最喜欢的来源中找到 或

pdftotext

#!/bin/bash
for file in *.pdf; do
if [ -z "$(pdftotext "$file" - | sed 's/\s//g')" ]; then
echo $file
fi
done

我使用以下脚本将需要 OCR 的文件移动到子文件夹中,以便我可以从 Acrobat 执行批量 OCR。您可以使用您选择的命令行工具直接运行 OCR。

#!/bin/bash
mkdir ocr
for file in *.pdf; do
echo $file
if [ -z "$(pdftotext "$file" - | sed 's/\s//g')" ]; then
mv "$file" ocr
fi
done

-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.