首頁 >後端開發 >Python教學 >解鎖嵌入字體 PDF 中的文字:pytesseract OCR 教學課程

解鎖嵌入字體 PDF 中的文字:pytesseract OCR 教學課程

Patricia Arquette
Patricia Arquette原創
2024-12-01 18:47:09852瀏覽

Unlocking Text from Embedded-Font PDFs: A pytesseract OCR Tutorial

當 PDF 為英文且沒有嵌入字體時,從 PDF 中提取文字通常很簡單。然而,一旦消除這些假設,使用 pdfminer 或 pdfplumber 等基本 Python 函式庫就變得具有挑戰性。上個月,我的任務是從古吉拉特語 PDF 中提取文本,並將姓名、地址、城市等資料欄位匯入 JSON 格式。

如果字體嵌入在 PDF 本身中,簡單的複製貼上將不起作用,並且使用 pdfplumber 將傳回不可讀的垃圾文字。因此,我必須將每個 PDF 頁面轉換為圖像,然後使用 pytesseract 庫應用 OCR 來「掃描」頁面,而不僅僅是閱讀它。本教學將向您展示如何做到這一點。

你需要的東西

  • pdfplumber(Python 庫)
  • pdf2image(Python 庫)
  • pytesseract(Python 函式庫)
  • tesseract-ocr

您可以使用 pip 指令安裝 Python 函式庫,如下所示。對於 Tesseract-OCR,請從官方網站下載並安裝軟體。 pytesseract 只是 tesseract 軟體的包裝。

將 PDF 頁面轉換為圖像

第一步是將 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 影像幾乎是不可能的。這才是真正的進步!祝您編碼愉快,請在下面的評論中告訴我進展如何。

參考

  • 在 Windows 中安裝 Tesseract
  • 使用 pytesseract OCR 辨識影像中的文字
  • 如何設定 pytesseract 以支援 Windows 10 中非英語語言的文字偵測?

以上是解鎖嵌入字體 PDF 中的文字:pytesseract OCR 教學課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn