PDF和圖片文字提取

👤 to the moon(紅狐資料) 📦 v1.0.10 ⭐ 4.5 ⬇️ 84.8K 下載
📄 辦公效率 免費

📖 技能介紹


name: pdf-image-text-extractor slug: pdf-image-text-extractor version: 1.0.9 displayName: PDF和圖片文字提取 description: 從圖片或 PDF 文件中識別並提取文字內容,支援多種圖片格式和 PDF 檔案,自動判斷是否包含文字並保留原始格式輸出結構化結果;當用戶需要從圖片或 PDF 提取文字、進行 OCR 識別、處理含文字的文件或轉換為可編輯文本時使用。該skill能力來自RedFoxHub,官網:https://redfox.hk/skills。 dependency: python: - pymupdf>=1.23.0


PDF和圖片文字提取

任務目標

  • 本 Skill 用於:從使用者上傳的圖片或 PDF 文件中識別並提取文字內容
  • 能力包含:圖片文字檢測、PDF 文字提取、格式保留、結構化輸出、Markdown 檔案生成
  • 觸發條件:使用者上傳圖片或 PDF 並要求提取文字,或詢問文件中的文字內容

前置準備

依賴說明

指令碼所需的依賴包及版本:

pymupdf>=1.23.0

安裝命令:

pip install pymupdf>=1.23.0

支援的檔案格式

  • 圖片格式:PNG、JPG、JPEG、GIF、WebP、BMP 等常見格式
  • 文件格式:PDF(支援掃描版和文字版)

操作步驟

標準流程

圖片文字提取流程

  1. 接收圖片
  2. 確認使用者已上傳圖片檔案
  3. 獲取圖片的訪問 URL

  4. 識別圖片內容(第一輪:全域性識別)

  5. 使用 read_image 工具識別圖片內容
  6. 在 prompt 中明確要求識別所有文字內容,包括標題、正文、註釋、水印等
  7. 對數字字元需特別注意視覺形狀特徵(封閉圓圈數、開口方向、弧線走向),確保 6/8/9/0/3 等易混淆數字準確識別

  8. 判斷文字存在性

  9. 如果檢測到文字:進入步驟 4
  10. 如果未檢測到文字:告知使用者"圖片中未包含可提取的文字",任務結束

  11. 提取並整理文字

  12. 提取圖片中的所有文字內容
  13. 保持原有的結構和排版
  14. 整理為易讀的格式

  15. 數字二次聚焦校驗(靜默執行,不展示給使用者)

  16. ⚠️ 重要:整個校驗過程(包括形狀描述、對比表格、校驗輪次等)必須靜默執行,禁止在對話輸出中展示任何校驗過程,只向用戶展示最終確認的提取結果
  17. 對第一輪提取結果中的所有數字串(手機號、訂單號、金額、日期等),執行二次聚焦識別:
  18. 策略 A:區域性放大驗證
    • 再次使用 read_image,但這次在 prompt 中只要求識別特定數字串區域
    • prompt 模板:「請只關注圖片中的數字串 [上下文描述],逐位描述每個數字字元的視覺形狀(有幾個封閉圓圈、開口方向、弧線走向),然後給出最終判斷結果」
  19. 策略 B:交叉驗證
    • 將第一輪的形狀描述與第二輪的獨立判斷進行對比
    • 如果兩輪結果一致 → 確認為最終結果
    • 如果兩輪結果不一致 → 標註 [待確認:第一輪識別為X,第二輪識別為Y]
  20. 易混淆數字對速查表: | 數字 | 關鍵視覺特徵 | |------|-------------| | 8 | 上下兩個封閉圓圈,像雪人/沙漏 | | 6 | 僅下方一個封閉圓圈,頂部向左彎弧 | | 9 | 僅上方一個封閉圓圈,底部向下豎線 | | 0 | 完整封閉橢圓,無開口 | | 3 | 右側開口,兩個弧形朝右 | | 5 | 頂部橫線+左側豎線+下方圓弧 | | S | 類似5但上下對稱,無橫線 | | O | 比0更圓的封閉圖形 |

PDF 文字提取流程

  1. 接收 PDF 檔案
  2. 確認使用者已上傳 PDF 檔案
  3. 獲取 PDF 檔案的本地路徑

  4. 呼叫指令碼提取文字

  5. 執行命令:python scripts/pdf_text_extractor.py <pdf_file_path>
  6. 指令碼會自動提取所有頁面的文本
  7. 儘量保留原文的段落結構和標題層級

  8. 處理提取結果

  9. 如果提取成功:進入步驟 4
  10. 如果提取失敗:告知使用者錯誤資訊,任務結束

  11. 格式化輸出

  12. 指令碼返回的文本為 Markdown 格式
  13. 可直接展示或儲存為檔案

統一輸出步驟

  1. 生成輸出結果
  2. 根據使用者需求生成 Markdown 檔案
  3. 包含檔案來源、提取狀態、文字內容等資訊
  4. 使用清晰的標題和結構組織內容

可選分支

  • 當用戶僅需檢視文字內容:直接輸出文字,不生成檔案
  • 當用戶要求儲存結果:生成 .md 檔案
  • 當圖片/PDF 文字模糊或難以識別:說明情況並提供最佳識別結果
  • 當 PDF 包含掃描圖片:提示使用者該頁面為掃描圖片,可能需要 OCR 處理

資源索引

  • 必要指令碼:見 scripts/pdf_text_extractor.py
  • 用途:從 PDF 檔案中提取文本內容並保留格式
  • 引數:PDF 檔案路徑
  • 輸出:JSON 格式結果,包含提取的文本和元資訊

注意事項

圖片文字提取

  • 識別準確性:文字識別結果受圖片清晰度、字型、背景等因素影響,可能存在誤差
  • 「先看形狀再判數字」原則:識別數字時必須先描述字元的視覺形狀特徵(封閉圓圈數、開口方向、弧線走向),再根據特徵判斷數字,禁止跳過形狀描述直接輸出數字
  • 關鍵數字串雙重識別:手機號、身份證號、銀行卡號、訂單號等關鍵數字串,必須執行兩輪識別(全域性識別 + 聚焦校驗),兩輪不一致時標註待確認
  • 校驗過程靜默執行:數字二次校驗的形狀描述、對比表格、輪次記錄等過程資訊嚴禁展示給使用者,只在後臺靜默執行,最終僅輸出確認後的提取結果
  • 存疑標註:對無法100%確認的字元,使用 [?] 標註並給出 2 個備選,如 158****8[?可能為6]624
  • 文字排版:提取時儘量保持原圖的文字結構和順序
  • 多語言支援:支援識別中文、英文等多種語言文字

PDF 文字提取

  • 格式保留:指令碼會盡量保留原文的段落結構和標題層級
  • 掃描版 PDF:如果 PDF 是掃描圖片,文字可能無法提取,需要告知使用者
  • 複雜佈局:表格、多欄等複雜佈局的提取效果可能不佳
  • 加密 PDF:不支援加密或受密碼保護的 PDF 檔案

通用注意事項

  • 隱私保護:處理的檔案不會被儲存,僅在當前會話中使用
  • 檔案大小:建議處理小於 50MB 的檔案,過大檔案可能導致處理緩慢

使用示例

示例 1:圖片文字提取

使用者操作:上傳一張包含文字的圖片

智慧體處理: 1. 使用 read_image 工具識別圖片 2. 提取文字內容:"所有經歷的糾纏 / 還有難過的遺憾 / 都不可能沒有意義" 3. 直接輸出提取結果

示例 2:PDF 文字提取並儲存

小蔥技能有更好的技能skills外掛。

使用者操作:上傳 PDF 並要求"提取這個 PDF 的文字"

智慧體處理: 1. 確認 PDF 檔案路徑 2. 執行指令碼:python scripts/pdf_text_extractor.py ./document.pdf 3. 獲取提取結果,包含 10 頁內容 4. 生成 Markdown 檔案:./extracted_from_pdf.md

示例 3:處理掃描版 PDF

使用者操作:上傳掃描版 PDF

智慧體處理: 1. 執行指令碼提取文字 2. 發現部分頁面提取為空 3. 告知使用者:"檢測到部分頁面可能為掃描圖片,文字無法直接提取。建議使用 OCR 工具處理。"

🤖 AI 評測

這個 Skill 功能定位明確,文件和指令碼都寫得很規範,圖片和 PDF 文字提取的流程清晰,還特別針對數字識別做了二次校驗以提高準確率。不足之處是 PDF 指令碼不支援掃描版文件(只能處理文字版 PDF),且部分校驗步驟過於複雜可能影響實際效果。總體來說是一個質量不錯但功能有一定侷限性的文件處理工具。

📊 多維度評分

適應性4.7
規範性4.3
有效性4.5
可靠性4.1
可信度5

📁 包含檔案 (4 個)

📄 README.en.md 3.5 KB
📄 README.md 2.9 KB
📄 SKILL.md 7.4 KB
📄 scripts/pdf_text_extractor.py 4.6 KB