我有超過30,000個pdf文件。有些文件已經是OCR,有些則不是。有沒有辦法找出哪些文件已經被OCR了,哪些pdf只是圖片?如何識別需要OCR的PDF文件?
如果我通過OCR處理器運行每個文件,它將永遠需要。
我有超過30,000個pdf文件。有些文件已經是OCR,有些則不是。有沒有辦法找出哪些文件已經被OCR了,哪些pdf只是圖片?如何識別需要OCR的PDF文件?
如果我通過OCR處理器運行每個文件,它將永遠需要。
我會寫一個小腳本從PDF文件中提取文本,看它是否爲「空」。如果有文本,PDF已經被OCR。您可以使用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。
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
謝謝回答。至少你給了我一些想法。 PowerShell腳本可以用ghostscript或xpdf構建嗎?你有什麼我可以嘗試的方便嗎?再次感謝。 –
在我的回答中增加了一些腳本 –
感謝您的代碼片段。我一定會嘗試一下。 –