返回顶部
E

Extract PDF Text提取PDF文本

Extract text from PDF files using PyMuPDF. Parse tables, forms, and complex layouts. Supports OCR for scanned documents.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
1,350
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

Extract PDF Text

何时使用

当代理需要从PDF中提取文本时使用。使用PyMuPDF(fitz)进行快速本地提取。适用于基于文本的文档、带OCR的扫描页面、表单和复杂布局。

快速参考

主题文件
代码示例examples.md
OCR设置
ocr.md | | 故障排除 | troubleshooting.md |

核心规则

1. 首先安装PyMuPDF

bash
pip install PyMuPDF

导入为fitz(历史名称):
python
import fitz # PyMuPDF

2. 基本文本提取

python
import fitz

doc = fitz.open(document.pdf)
text =
for page in doc:
text += page.get_text()
doc.close()

3. 选择正确的方法

PDF类型方法
基于文本page.get_text() — 快速、准确
扫描件
使用pytesseract进行OCR — 较慢 | | 混合类型 | 检查每页,必要时使用OCR |

4. 在OCR前检查文本

python
def needs_ocr(page):
text = page.get_text().strip()
return len(text) < 50 # 文本极少时可能是扫描件

5. 优雅处理错误

python
try:
doc = fitz.open(path)
except fitz.FileDataError:
print(无效或损坏的PDF)
except fitz.PasswordError:
doc = fitz.open(path, password=secret)

提取陷阱

陷阱后果修复方法
对文本PDF使用OCR速度慢+准确度低先检查get_text()
忘记关闭文档
内存泄漏 | 使用with或doc.close() | | 假设页面顺序 | 读取流程错误 | 在get_text()中使用sort=True | | 忽略编码 | 乱码字符 | PyMuPDF处理UTF-8 |

范围

本技能提供使用PyMuPDF提取PDF文本的说明。

本技能仅:

  • - 提供PyMuPDF的代码示例
  • 必要时解释OCR设置
  • 排查常见问题

本技能绝不:

  • - 未经用户请求访问文件
  • 将数据发送到外部
  • 修改原始PDF

安全与隐私

所有处理均在本地进行:

  • - PyMuPDF完全在您的机器上运行
  • 无外部API调用
  • 无数据离开您的系统

输出格式

纯文本

python text = page.get_text()

结构化数据(字典)

python blocks = page.get_text(dict)[blocks] for b in blocks: if b[type] == 0: # 文本块 for line in b[lines]: for span in line[spans]: print(span[text], span[size])

JSON

python import json data = page.get_text(json) parsed = json.loads(data)

完整示例

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)
}

使用示例

result = extract_pdf(document.pdf) print(f从{result[pages]}页中提取了{result[word_count]}个词)

反馈

  • - 有用吗?clawhub star extract-pdf-text
  • 保持更新:clawhub sync

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 extract-pdf-text-1776420028 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 extract-pdf-text-1776420028 技能

通过命令行安装

skillhub install extract-pdf-text-1776420028

下载

⬇ 下载 Extract PDF Text v1.0.2(免费)

文件大小: 5.65 KB | 发布时间: 2026-4-17 19:28

v1.0.2 最新 2026-4-17 19:28
Remove internal build file that was accidentally included

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部