技能标识:Extract PDF Text
Extract text from PDF files using PyMuPDF. Parse tables, forms, and complex layouts. Supports OCR for scanned documents.
当代理需要从PDF中提取文本时使用。使用PyMuPDF(fitz)进行快速本地提取。适用于基于文本的文档、带OCR的扫描页面、表单和复杂布局。
| 主题 | 文件 |
|---|---|
| 代码示例 | examples.md |
| OCR设置 |
bash
pip install PyMuPDF
导入为fitz(历史名称):
python
import fitz # PyMuPDF
python
import fitz
doc = fitz.open(document.pdf)
text =
for page in doc:
text += page.get_text()
doc.close()
| PDF类型 | 方法 |
|---|---|
| 基于文本 | page.get_text() — 快速、准确 |
| 扫描件 |
python
def needs_ocr(page):
text = page.get_text().strip()
return len(text) < 50 # 文本极少时可能是扫描件
python
try:
doc = fitz.open(path)
except fitz.FileDataError:
print(无效或损坏的PDF)
except fitz.PasswordError:
doc = fitz.open(path, password=secret)
| 陷阱 | 后果 | 修复方法 |
|---|---|---|
| 对文本PDF使用OCR | 速度慢+准确度低 | 先检查get_text() |
| 忘记关闭文档 |
本技能提供使用PyMuPDF提取PDF文本的说明。
本技能仅:
本技能绝不:
所有处理均在本地进行:
python
import fitz
def extract_pdf(path):
从PDF提取文本,扫描页使用OCR作为后备方案。
doc = fitz.open(path)
results = []
for i, page in enumerate(doc):
text = page.get_text()
method = text
# 如果文本极少,可能是扫描件
if len(text.strip()) < 50:
# 此处进行OCR(参见ocr.md)
method = needs_ocr
results.append({
page: i + 1,
text: text,
method: method
})
doc.close()
return {
pages: len(results),
content: results,
word_count: sum(len(r[text].split()) for r in results)
}
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 extract-pdf-text-1776420028 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 extract-pdf-text-1776420028 技能
skillhub install extract-pdf-text-1776420028
文件大小: 5.65 KB | 发布时间: 2026-4-17 19:28