我寫了一個bash腳本,從掃描的PDF文件中提取純文本。我有很多PDF文件,但有些是掃描的,有些則不是。所以現在我的主要目標是通過檢查PDF是否已經可以搜索來改進我的腳本,所以不需要OCR提取。檢查PDF是否可搜索
我已經試過:
pdftext -nopgbrk pdf_file.pdf wordlist
存儲可能OCR'ed文字wordlist
,所以後來我可以檢查它是否是空的,並找出是否是一個可搜索的PDF或沒有。
我也試過pdffonts pdf_file.pdf
來檢查該PDF中是否有字體,因此是否有文字。
這兩種方式工作很好,但在某些情況下失敗。
例如,我需要OCR的一些PDF需要數字簽名,而這些簽名始終爲PDF添加文本圖層。所以,當我運行這兩個命令中的任何一個時,它將輸出簽名的文本或它使用的字體。就好像它是因爲簽名而發現了純文本一樣。它可能只是一個帶有數字簽名的掃描PDF,但會被檢測爲純文本PDF。
數碼引援總是添加文字這種方式(使用Helvetica字體):名稱
日期:日期CEST
公司:公司名稱
通過簽名
所以:
pdftext -nopgbrk pdf_file.pdf wordlist | grep -v -E 'Signed|Date|Company'
我可以設法刪除這些行,所以如果它真的是掃描的PDF,輸出將爲空。
它工作的一些PDF的,直到我注意到有一些其他格式的簽名,所以我覺得這是相當多的解決方法,而不是一個很好的解決方案。
有什麼方法可以檢查PDF是否完全可搜索?我只需要一種方法來提取PDF文本,但省略了數字簽名。另外grep -v
將總是取決於我們的數字簽名的格式,如果它改變,那麼它會搞砸我的腳本。
謝謝。
你可能是對的。我發佈了這個與我的OCR腳本相關的問題,這個腳本與編程相關,但是當你提到我自己的問題可能是無關緊要的時候,所以Unix&Linux堆棧交換可能是一個更好的地方發佈它。無論如何,如果有人用腳本或算法來解決我的問題,那麼它也可能與編程有關。反正很抱歉。 –