當 PDF 為英文且沒有嵌入字體時,從 PDF 中提取文字通常很簡單。然而,一旦消除這些假設,使用 pdfminer 或 pdfplumber 等基本 Python 函式庫就變得具有挑戰性。上個月,我的任務是從古吉拉特語 PDF 中提取文本,並將姓名、地址、城市等資料欄位匯入 JSON 格式。
如果字體嵌入在 PDF 本身中,簡單的複製貼上將不起作用,並且使用 pdfplumber 將傳回不可讀的垃圾文字。因此,我必須將每個 PDF 頁面轉換為圖像,然後使用 pytesseract 庫應用 OCR 來「掃描」頁面,而不僅僅是閱讀它。本教學將向您展示如何做到這一點。
您可以使用 pip 指令安裝 Python 函式庫,如下所示。對於 Tesseract-OCR,請從官方網站下載並安裝軟體。 pytesseract 只是 tesseract 軟體的包裝。
第一步是將 PDF 頁面轉換為影像。這個 extract_text_from_pdf() 函數正是這樣做的 - 您將 PDF 路徑和 page_num (零索引)傳遞為參數。請注意,為了清晰起見,我首先將頁面轉換為黑白,這是可選的。
ocr_image()函數使用pytesseract透過OCR從影像中擷取文字。 --oem 和 --psm 等技術參數控制影像的處理方式,-l guj eng 參數設定要讀取的語言。由於此 PDF 偶爾包含英文文本,因此我使用了 guj eng。
使用 OCR 匯入文字後,您可以按照您想要的格式解析它。這與其他 PDF 庫(如 pdfplumber 或 pypdf2)類似。
每個 PDF 都有其必須考慮的細微差別。在這種情況下,當後續欄位(姓氏)變更時,第一個欄位中的新序號(如 0૧ 或 0૨)表示一個新群組。
pytesseract 是 IT 技術發展和進步的證明。大約十年前,在配置適度的 PC 或筆記型電腦上使用非英語 OCR 讀取或解析 PDF 影像幾乎是不可能的。這才是真正的進步!祝您編碼愉快,請在下面的評論中告訴我進展如何。
以上是解鎖嵌入字體 PDF 中的文字:pytesseract OCR 教學課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!