步驟一:先安裝tesseract-ocr-w64-setup-5.4.0.20240606 (安裝記得語言包只安裝需要的即可)
步驟二:將安裝目錄新增到系統環境變數中
(網上很多這一步之後就說可以執行程式了其實不然,一直報錯沒有新增到環境變數中)
步驟三:
第四步:可以正常執行啦
==========================================================================================
from PyPDF2 import PdfReader
from docx import Document
import pytesseract
from PIL import Image
import io
def pdf_to_word_with_ocr(pdf_path, word_path):
import os
# 檢查檔案是否存在
if not os.path.exists(pdf_path):
raise FileNotFoundError(f"指定的檔案 {pdf_path} 不存在。")
# 建立Word文件物件
doc = Document()
# 開啟PDF檔案
reader = PdfReader(pdf_path)
# 遍歷PDF中的每一頁
for page_number, page in enumerate(reader.pages):
# 嘗試提取頁面文字
text = page.extract_text()
if text:
# 如果能直接提取到文字,就新增到Word文件中
doc.add_paragraph(text)
else:
# 如果頁面沒有文字,嘗試使用OCR提取影像中的文字
images = page.images
if images:
for image_index, img in enumerate(images):
# 將影像資料從PDF中提取出來
image = Image.open(io.BytesIO(img.data))
# 使用OCR識別影像中的文字
ocr_text = pytesseract.image_to_string(image, lang='chi_sim')
doc.add_paragraph(f"第{page_number+1}頁, 影像{image_index+1}: {ocr_text}")
else:
# 如果頁面既沒有文字也沒有影像,新增一個佔位符
doc.add_paragraph(f"第{page_number+1}頁無文字或影像。")
# 儲存Word文件
doc.save(word_path)
使用函式
pdf_path = '45.pdf'
word_path = 'output.docx'
pdf_to_word_with_ocr(pdf_path, word_path)