2011-10-12 26 views
5

我有超過30,000個pdf文件。有些文件已經是OCR,有些則不是。有沒有辦法找出哪些文件已經被OCR了,哪些pdf只是圖片?如何識別需要OCR的PDF文件?

如果我通過OCR處理器運行每個文件,它將永遠需要。

回答

3

我會寫一個小腳本從PDF文件中提取文本,看它是否爲「空」。如果有文本,PDF已經被OCR。您可以使用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。

+0

謝謝回答。至少你給了我一些想法。 PowerShell腳本可以用ghostscript或xpdf構建嗎?你有什麼我可以嘗試的方便嗎?再次感謝。 –

+0

在我的回答中增加了一些腳本 –

+0

感謝您的代碼片段。我一定會嘗試一下。 –

0

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