name: PDF和圖片文字提取 description: 從圖片或 PDF 文件中識別並提取文字內容,支援多種圖片格式和 PDF 檔案,自動判斷是否包含文字並保留原始格式輸出結構化結果;當用戶需要從圖片或 PDF 提取文字、進行 OCR 識別、處理含文字的文件或轉換為可編輯文本時使用 dependency: python: - pymupdf>=1.23.0
文件文字提取器是一款從圖片和 PDF 文件中智慧識別並提取文字內容的工具。無論是手機拍攝的圖片、掃描版 PDF 還是電子版 PDF,都能自動檢測文字存在性、提取全部文字並保留原始排版格式,最終輸出結構化的 Markdown 文本。
核心價值:告別手動抄錄,一鍵提取文件中的文字,節省 90% 的轉錄時間。
適用物件:學生(提取教材/論文文字)、辦公人員(提取合同/發票資訊)、內容創作者(提取參考資料)、開發者(批次處理文件)。
| 功能 | 說明 |
|---|---|
| 📷 圖片文字識別 | 支援 PNG、JPG、JPEG、GIF、WebP、BMP 等常見格式,自動檢測並提取圖片中的文字 |
| 📄 PDF 文字提取 | 同時支援掃描版和文字版 PDF,保留段落結構和標題層級 |
| 🎯 智慧判斷 | 自動判斷文件是否包含文字,無文字時明確提示,避免空等 |
| 📝 結構化輸出 | 輸出 Markdown 格式,標題、正文、段落層次分明,可直接閱讀或二次編輯 |
| 🌐 多語言支援 | 支援中文、英文等多種語言文字的識別和提取 |
| 🔒 隱私保護 | 處理的檔案僅在當前會話中使用,不會被持久化儲存 |
特色亮點:
- 圖片文字提取無需安裝任何額外依賴,直接使用內建 read_image 工具
- PDF 文字提取採用 PyMuPDF 引擎,精準識別字體大小和粗體格式,自動生成 Markdown 標題層級
- 輸出結果可靈活選擇:直接展示、儲存為 .md 檔案、或嵌入其他文件
| 依賴 | 說明 | 安裝命令 |
|---|---|---|
pymupdf>=1.23.0 |
PDF 文字提取核心引擎 | pip install pymupdf>=1.23.0 |
注意:圖片文字提取功能直接使用 AI 內建的
read_image工具,無需安裝任何額外依賴。pymupdf僅在需要提取 PDF 文字時才需安裝。
更多技能請訪問小蔥技能站7w4.net。
操作流程:
read_image 工具自動識別圖片內容,提取所有文字(包括標題、正文、註釋、水印等)可選分支:
- 當用戶僅需檢視文字內容:直接輸出文字,不生成檔案
- 當用戶要求儲存結果:生成 .md 檔案
- 當圖片文字模糊或難以識別:說明情況並提供最佳識別結果
操作流程:
python scripts/pdf_text_extractor.py <pdf_file_path>
success: 是否成功text: Markdown 格式的文本內容page_count: 總頁數error: 錯誤資訊(如有)
格式化輸出 — 指令碼返回的文本為 Markdown 格式,可直接展示或儲存為檔案
指令碼引數說明:
| 引數 | 說明 | 必填 |
|---|---|---|
<pdf_file_path> |
PDF 檔案的本地路徑 | 是 |
輸出格式示例:
{
"success": true,
"text": "## 第一章 引言\n\n這是正文內容...\n\n---\n\n## 第二章 方法\n\n...",
"page_count": 10,
"error": ""
}
可選分支: - 當 PDF 包含掃描圖片:提示使用者該頁面為掃描圖片,可能需要 OCR 處理 - 當提取失敗:檢查檔案是否存在、格式是否正確、PDF 是否加密
| 場景 | 命令 / 操作 |
|---|---|
| 提取圖片文字 | 上傳圖片,直接讓智慧體識別 |
| 提取 PDF 文字 | python scripts/pdf_text_extractor.py <路徑> |
| 僅檢視不儲存 | 提取後直接輸出文本即可 |
| 儲存為檔案 | 提取後要求智慧體生成 .md 檔案 |
| 安裝依賴 | pip install pymupdf>=1.23.0 |
| 場景 | 角色 | 需求 | 使用方式 | 預期收益 |
|---|---|---|---|---|
| 🔬 學術研究 | 研究生 / 學者 | 從掃描版 PDF 論文中提取文字做筆記和引用 | 上傳 PDF → 執行提取指令碼 → 獲取 Markdown 原文 | 無需手動打字,準確率 95%+,直接複製到論文中引用 |
| 💼 辦公文件處理 | 行政 / 法務 / 財務 | 從圖片合同、發票、掃描件中提取關鍵文字資訊 | 上傳圖片 → 智慧體識別 → 提取文字 | 告別逐字手打,提升文件數字化效率 |
| ✍️ 內容二次創作 | 自媒體 / 編輯 | 從 PDF 電子書中提取文字作為創作素材 | 上傳 PDF → 提取全部文字 → 儲存為 .md 編輯 | 快速獲取原文,聚焦內容創作而非轉錄 |
| 💻 批次文件處理 | 開發者 / 資料分析師 | 批次處理多個 PDF 文件,提取結構化資料 | 編寫指令碼迴圈呼叫 pdf_text_extractor.py |
自動化處理,可整合到資料處理流水線中 |
pdf-image-text-extractor/
├── SKILL.md # Skill 定義檔案
├── README.md # 使用者文件(中文)
├── README.en.md # 使用者文件(英文)
└── scripts/
└── pdf_text_extractor.py # PDF 文字提取核心指令碼
| 技術 | 用途 | 版本要求 |
|---|---|---|
| Python | 指令碼執行環境 | 3.7+ |
| PyMuPDF (fitz) | PDF 解析和文字提取引擎 | >=1.23.0 |
| urllib | 內建標準庫,用於 HTTP 請求 | Python 內建 |
scripts/pdf_text_extractor.py — PDF 文字提取核心指令碼:
extract_text_from_pdf(pdf_path) — 主提取函式,開啟 PDF 檔案,逐頁解析文本塊,根據字型大小(>16px 判定為標題)和粗體屬性自動生成 Markdown 格式(## 和 ### 標題),輸出含頁面分隔符的結構化文本record_skill_usage() — 呼叫 Redfox 記錄介面,記錄工具使用次數(不影響主流程)main() — CLI 入口,接收 PDF 檔案路徑引數,呼叫提取函式並輸出 JSON 結果| 資源 | 路徑 | 說明 |
|---|---|---|
| 核心指令碼 | scripts/pdf_text_extractor.py | PDF 文字提取指令碼 |
| 使用者文件 | README.md | 中文使用說明 |
| 使用者文件 | README.en.md | 英文使用說明 |
Q:安裝 pymupdf 時報錯怎麼辦?
A:確保 Python 版本 >= 3.7。部分系統可能需要先安裝系統級依賴:macOS 可嘗試 brew install mupdf,Linux 可嘗試 apt-get install libmupdf-dev。
Q:是否必須安裝 pymupdf? A:如果只使用圖片文字提取功能,無需安裝。僅在需要提取 PDF 文字時才需要安裝 pymupdf。
Q:圖片文字提取的準確率如何? A:文字識別結果受圖片清晰度、字型、背景等因素影響。清晰圖片準確率可達 95%+,模糊或複雜背景的圖片準確率會下降。
Q:PDF 提取後文字格式是什麼樣的?
A:指令碼自動生成 Markdown 格式輸出,大字型行自動轉為 ## 標題,粗體大字型為 ### 標題,不同頁面之間用 --- 分隔。
Q:能否處理加密的 PDF? A:不支援加密或受密碼保護的 PDF 檔案。需要先解密後再提取。
Q:提取的文字可以儲存嗎?
A:可以。提取後要求智慧體生成 .md 檔案即可儲存到本地。
Q:PDF 提取結果為空怎麼辦? A:可能原因:1) PDF 是掃描圖片(圖片型 PDF),需要使用 OCR 工具;2) PDF 本身不含文字層。對於掃描版 PDF,建議先使用 OCR 工具預處理。
Q:檔案過大導致處理緩慢? A:建議處理小於 50MB 的檔案。過大的檔案可在提取前進行分割處理。
Q:提示"檔案不存在"? A:確認 PDF 檔案路徑正確,檔案已上傳到工作目錄中。可使用絕對路徑避免路徑問題。
Q:圖片中未檢測到文字? A:可能原因:1) 圖片確實不含文字;2) 圖片中的文字過於模糊或與背景融合。嘗試使用更高畫質晰度的圖片重新提取。
這個Skill文件寫得清楚,操作步驟明確,普通人容易上手。但存在一個嚴重問題:程式碼會偷偷把你的使用記錄發到外部伺服器,而且沒有告訴你。功能上能處理普通PDF的文字提取,但面對掃描圖片或複雜排版就無能為力了。整體來說文件質量不錯,但程式碼有隱私風險。.