掃描PDF轉文字:把無文字層的圖片型 PDF 轉成可編輯 Markdown

前言

處理掃描件時最常見的問題不是「解析失敗」,而是工具靜默成功:pdfplumber、markitdown 或 PyMuPDF 的 get_text() 對某個 PDF 全部返回空字符串,但文件看起來完好,用戶以爲已經提取完成。這類 PDF 是純圖片、沒有嵌入文字層,常規解析拿不到任何內容。下面介紹的 Skill「掃描PDF轉文字」就是針對這個信號設計的:先判定是不是掃描件,再用渲染加 OCR 的方式重建文字,輸出結構化 Markdown。

這是什麼

「掃描PDF轉文字」是一個社區來源的通用 SKILL.md 格式 Skill,座標 @user_937442fe/scanned-pdf-extractor,當前版本 3.0.2,分類 office-efficiency,發佈者 user_937442fe。它解決的問題是:當常規解析工具都提取不到文字時,對掃描版 PDF 逐頁渲染高清圖片,用 OCR 引擎識別,輸出結構化文檔。適合合同、票據、證件、報告等掃描件數字化。

核心功能

  1. 掃描件判定:pdfplumber、markitdown 或 PyMuPDF get_text() 對某 PDF 全部返回空,即說明該文件是掃描件而非數字生成。
  2. 逐頁渲染高清 PNG,再用配置的 OCR 引擎識別,輸出結構化 Markdown。
  3. 批量處理,支持渲染與 OCR 雙階段斷點續傳,中斷後可從對應階段繼續。
  4. 歪斜頁面自動糾偏,走三道安全門(細節以官方資料爲準,不在此展開)。
  5. 雙欄文檔按正確閱讀順序輸出,避免左右欄文字交錯。
  6. 表格結構化還原,基於 PaddleOCR PP-StructureV3。
  7. 引擎可切換:默認 vision 引擎零安裝即用,可選 paddle / tesseract 本地引擎。

版本說明:官方資料標註當前版本 3.0.2。

安裝與啓用

官方資料未給出安裝命令、目錄佈局或配置字段,本文不臆造。可用的確認方式如下:

  1. 訪問 SkillHub 官方頁面確認 Skill 的存在、座標與版本:https://www.skillhub.cn/skills/user_937442fe/scanned-pdf-extractor
  2. 接口地址:https://api.skillhub.cn/user_937442fe/scanned-pdf-extractor
  3. 該 Skill 標籤爲 requires_api_key=false,無需爲調用本身準備 API Key。OCR 引擎若選 paddle / tesseract,屬於本地引擎,需自行安裝對應依賴,具體命令以官方文檔爲準。

Cursor / Codex CLI / Claude Code 的接入差異,官方資料未說明,此處不做區分描述。

典型用法

官方資料給出瞭如下可復現的判定與使用流程:

  1. 先對目標 PDF 跑常規解析,確認是否爲掃描件:
pdfplumber / markitdown / PyMuPDF get_text() 全部返回空 → 掃描件

這一步是技能的觸發信號,不是錯誤提示。

  1. 確認後進入渲染加 OCR 流程,逐頁渲染高清 PNG,用配置的 OCR 引擎識別,輸出結構化 Markdown。默認 vision 引擎無需安裝即可直接使用。
  2. 批量處理時中斷可續傳,渲染與 OCR 兩個階段分別保留進度。
  3. 遇到雙欄文檔或表格時,分別走閱讀順序處理與 PP-StructureV3 表格還原。

適用場景與注意

適合:合同、票據、證件、報告等無文字層掃描件,尤其是需要批量處理、需要中斷續傳、頁面存在歪斜或包含表格的場景。

限制:

  1. 觸發前提是常規解析返回空。如果 PDF 本身有文字層,不必走這條渲染加 OCR 的鏈路。
  2. OCR 結果取決於引擎選擇與圖像質量。默認 vision 引擎零安裝但需要可用視覺通道;paddle / tesseract 爲本地引擎,性能與表格還原能力更強,但需自行安裝並配置。
  3. 歪斜糾偏的「三道安全門」具體判定邏輯、渲染分辨率與配置文件字段,官方資料未提供,使用前建議先拿一兩份樣本驗證效果。
  4. 資料未提供社區下載量以外的使用反饋,不在此引用未經覈實的案例。

結尾

「掃描PDF轉文字」的價值在於把「掃描件識別」從一次性腳本變成可中斷、可批量、可處理雙欄與表格的流程,並且默認引擎零安裝即可跑通。官方地址:https://www.skillhub.cn/skills/user_937442fe/scanned-pdf-extractor。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜