最近在做一個(gè)項(xiàng)目的時(shí)候,需要將PDF文件作為輸入,從中輸出文本,然后將文本存入數(shù)據(jù)庫(kù)中。為此,我找尋了很久的解決方案,最終才確定使用 tesseract 。所以不要浪費(fèi)時(shí)間了,我們開始吧。
1.安裝tesseract
在不同的系統(tǒng)中安裝 tesseract 非常容易。為了簡(jiǎn)便,我們以 Ubuntu 為例。
在 Ubuntu 中你僅僅需要運(yùn)行以下命令:
這將會(huì)安裝支持3種不同語(yǔ)言的 tesseract 。
2.安裝PyOCR
現(xiàn)在我們還需要安裝 tesseract 的Python接口。幸運(yùn)的是,有許多出色的Python接口。
我們采用最新的一個(gè):
3.安裝Wand和PIL
在我們開始之前,還需要另外安裝兩個(gè)依賴包。一個(gè)是 Wand 。它是 Imagemagick 的Python接口。
我們需要使用它來(lái)將PDF文件轉(zhuǎn)換成圖像:
我們也需要 PIL 因?yàn)? PyOCR 需要使用它。你可以查看官方文檔以確定如何將 PIL 安裝到你的操作系統(tǒng)中。
4.熱身
讓我們開始我們的腳本吧。首先,我們需要導(dǎo)入一些重要的庫(kù):
注意:
我將從
PIL
導(dǎo)入的
Image
模塊改名為PI了,因?yàn)槿绻贿@樣做的話,它將和
wand.image
模塊發(fā)生重名沖突。
5.開始
現(xiàn)在我們需要獲得 OCR庫(kù) (在本例中,即 tesseract )的句柄以及我們?cè)? PyOCR 中將使用的語(yǔ)言:
我們使用
tool.get_available_languages
里的第二種語(yǔ)言,因?yàn)橹拔以鴩L試過(guò),第二種語(yǔ)言就是英語(yǔ)。
接著,我們需要建立兩個(gè)列表,用于存儲(chǔ)我們的圖像和最終的文本。
下一步,我們需要采用 wand 將一個(gè)PDF文件轉(zhuǎn)成jpeg文件。讓我們?cè)囈辉嚢桑?
注意: 將 PDF_FILE_NAME 替換成當(dāng)前路徑下的一個(gè)可用的PDF文件名。
wand 已經(jīng)將PDF中所有的獨(dú)立頁(yè)面都轉(zhuǎn)成了獨(dú)立的二進(jìn)制圖像對(duì)象。我們可以遍歷這個(gè)大對(duì)象,并把它們加入到 req_image 序列中去。
現(xiàn)在,我們僅僅需要在圖像對(duì)象上運(yùn)行OCR即可,非常簡(jiǎn)單:
現(xiàn)在,所有識(shí)別出的文本已經(jīng)加到了 final_text 序列中了。你可以任意地使用它。以上就是利用Python對(duì)PDF文件做OCR識(shí)別的全部?jī)?nèi)容,希望這個(gè)教程能夠幫助到你們!
英文原文:https://pythontips.com/2016/02/25/ocr-on-pdf-files-using-python/
譯者:LuCima
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
