當遇到 pdf 複製文字是無法辨識的內容時,這是 pdf 保護文字資料的方法,可透過轉成圖片,再做 OCR 解決。
安裝軟體
# ghostscript. pdf -> 圖片
dnf install ghostscript
# 圖片
dnf install ImageMagick
# Tesseract OCR(圖片 → 文字)
sudo dnf install tesseract
tesseract --list-langs
# 預設已安裝英文
#sudo dnf install tesseract-langpack-chi-sim # 簡體中文,視需求
#sudo dnf install tesseract-langpack-chi-tra # 繁體中文
# 合併 pdf
dnf install poppler-utils
轉成圖片
gs -dNOPAUSE -dBATCH -sDEVICE=png16m -r300 -sOutputFile=page_%03d.png input.pdf
ocr 中文
tesseract page_001.png output_001 -l chi-tra pdf
ocr 英文
tesseract page_001.png output_001 -l eng pdf
--psdm 參數,目前測試調整後, table 換行還是有問題
--psm 常用模式:
3→ 全頁自動檢測文本6→ 單塊文本11→ 密集文字或多欄
tesseract page_001.png output_001 -l eng --psm 3 pdf
多頁
for f in page_*.png; do
base=$(basename $f .png)
tesseract "$f" "${base}_ocr" -l eng pdf
done
合併
pdfunite page_*_ocr.pdf final_output.pdf
壓縮
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -o compressed.pdf final_output.pdf