跳到主要內容

OCR 與文檔處理

從 PDF 和掃描文檔中提取文本。對於遠程 URL 使用 web_extract,對於本地基於文本的 PDF 使用 pymupdf,對於 OCR/掃描文檔使用 marker-pdf。對於 DOCX 文件使用 python-docx,對於 PPTX 文件請參閱 powerpoint 技能。

技能元數據

來源捆綁(默認安裝)
路徑skills/productivity/ocr-and-documents
版本2.3.0
作者Hermes Agent
許可證MIT
標籤PDF, Documents, Research, Arxiv, Text-Extraction, OCR
相關技能powerpoint

參考:完整 SKILL.md

信息

以下是 Hermes 在觸發此技能時加載的完整技能定義。這是技能激活時代理看到的指令。

PDF 與文檔提取

對於 DOCX:使用 python-docx(解析實際文檔結構,遠優於 OCR)。 對於 PPTX:請參閱 powerpoint 技能(使用 python-pptx,完全支持幻燈片/備註)。 本技能涵蓋 PDF 和掃描文檔

步驟 1:是否有遠程 URL?

如果文檔有 URL,始終首先嚐試 web_extract

web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
web_extract(urls=["https://example.com/report.pdf"])

這通過 Firecrawl 處理 PDF 到 Markdown 的轉換,無需本地依賴項。

僅在以下情況下使用本地提取:文件是本地的、web_extract 失敗或需要批量處理。

步驟 2:選擇本地提取器

功能pymupdf (~25MB)marker-pdf (~3-5GB)
基於文本的 PDF
掃描版 PDF (OCR)✅ (90+ 種語言)
表格✅ (基礎)✅ (高精度)
公式 / LaTeX
代碼塊
表單
頁眉/頁腳移除
閱讀順序檢測
圖片提取✅ (嵌入式)✅ (帶上下文)
圖片轉文本 (OCR)
EPUB
Markdown 輸出✅ (通過 pymupdf4llm)✅ (原生,更高質量)
安裝大小~25MB~3-5GB (PyTorch + 模型)
速度即時~1-14秒/頁 (CPU), ~0.2秒/頁 (GPU)

決策:除非你需要 OCR、公式、表單或複雜佈局分析,否則使用 pymupdf。

如果用戶需要 marker 的功能但系統缺乏約 5GB 的可用磁盤空間:

“此文檔需要 OCR/高級提取(marker-pdf),這需要約 5GB 空間用於 PyTorch 和模型。您的系統有 [X]GB 可用空間。選項:釋放空間、提供 URL 以便我使用 web_extract,或者我可以嘗試 pymupdf,它適用於基於文本的 PDF,但不適用於掃描文檔或公式。”


pymupdf(輕量級)

pip install pymupdf pymupdf4llm

通過輔助腳本

python scripts/extract_pymupdf.py document.pdf              # Plain text
python scripts/extract_pymupdf.py document.pdf --markdown # Markdown
python scripts/extract_pymupdf.py document.pdf --tables # Tables
python scripts/extract_pymupdf.py document.pdf --images out/ # Extract images
python scripts/extract_pymupdf.py document.pdf --metadata # Title, author, pages
python scripts/extract_pymupdf.py document.pdf --pages 0-4 # Specific pages

內聯

python3 -c "
import pymupdf
doc = pymupdf.open('document.pdf')
for page in doc:
print(page.get_text())
"

marker-pdf(高質量 OCR)

# Check disk space first
python scripts/extract_marker.py --check

pip install marker-pdf

通過輔助腳本

python scripts/extract_marker.py document.pdf                # Markdown
python scripts/extract_marker.py document.pdf --json # JSON with metadata
python scripts/extract_marker.py document.pdf --output_dir out/ # Save images
python scripts/extract_marker.py scanned.pdf # Scanned PDF (OCR)
python scripts/extract_marker.py document.pdf --use_llm # LLM-boosted accuracy

CLI(隨 marker-pdf 安裝):

marker_single document.pdf --output_dir ./output
marker /path/to/folder --workers 4 # Batch

Arxiv 論文

# Abstract only (fast)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])

# Full paper
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

# Search
web_search(query="arxiv GRPO reinforcement learning 2026")

pymupdf 原生支持這些功能 — 使用 execute_code 或內聯 Python:

# Split: extract pages 1-5 to a new PDF
import pymupdf
doc = pymupdf.open("report.pdf")
new = pymupdf.open()
for i in range(5):
new.insert_pdf(doc, from_page=i, to_page=i)
new.save("pages_1-5.pdf")
# Merge multiple PDFs
import pymupdf
result = pymupdf.open()
for path in ["a.pdf", "b.pdf", "c.pdf"]:
result.insert_pdf(pymupdf.open(path))
result.save("merged.pdf")
# Search for text across all pages
import pymupdf
doc = pymupdf.open("report.pdf")
for i, page in enumerate(doc):
results = page.search_for("revenue")
if results:
print(f"Page {i+1}: {len(results)} match(es)")
print(page.get_text("text"))

無需額外依賴 — pymupdf 在一個包中涵蓋了拆分、合併、搜索和文本提取功能。


注意事項

  • 對於 URL,web_extract 始終是首選
  • pymupdf 是安全的默認選擇 — 即時響應,無需模型,隨處可用
  • marker-pdf 用於 OCR、掃描文檔、公式、複雜佈局 — 僅在需要時安裝
  • 兩個輔助腳本都接受 --help 以獲取完整用法
  • marker-pdf 在首次使用時會下載約 2.5GB 的模型到 ~/.cache/huggingface/
  • 對於 Word 文檔:pip install python-docx(優於 OCR — 解析實際結構)
  • 對於 PowerPoint:請參閱 powerpoint 技能(使用 python-pptx)