我有超过30,000个pdf文件。有些文件已经是OCR而有些则不是。有没有办法找出哪些文件已经过OCR,哪些pdf只是图像?
如果我通过OCR处理器运行每个文件,将会永远。
答案 0 :(得分:3)
我会编写一个小脚本来从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
中只包含图像,也会提取一些文字,因此您需要做更多工作来检查是否需要OCR pdf。
答案 1 :(得分:0)
XPDF以不同的方式为我工作。但不确定这是正确的方法。
带图片的PDF文件也提供了文字内容。所以我使用 pdffonts.exe 来验证字体是否嵌入到文档中。在我的例子中,所有图像文件都显示“没有”#39;对于内含价值。
to be extracted
所有可搜索的PDF都给出了“是”'
> 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
答案 2 :(得分:0)
我发现TotalCmd有一个可以处理此问题的插件: https://totalcmd.net/plugring/pdfOCR.html
pdfOCR是wdx插件,可发现其中有多少页PDF文件 当前目录需要字符识别(OCR),即多少 PDF文件中的页面布局中没有可搜索的文本。这是 在准备文档的PDF文件时最需要 或归档系统。通常在他们需要的PDF文件中 之前要从扫描版本转换为文本可搜索形式 它们包含在任何文档中,以便进行手动操作或 自动文本搜索。 Total Commander的pdfOCR插件实现了 图书馆员的需求,方法是呈现图像的页面数 仅不包含任何文本。显示扫描的页数 在“ needOCR”列中。通过将needOCR页数与 可以决定是否需要PDF文件的总页数 其他OCR处理。