Install
openclaw skills install @yuanyi-github/image-text-extractor从图片或 PDF 文档中识别并提取文字内容,支持多种图片格式和 PDF 文件,自动判断是否包含文字并保留原始格式输出结构化结果;v2.1 采用零额外依赖方案:扫描版 PDF 自动渲染为图片交由 AI 视觉识别(无需 tesseract/rapidocr)、表格用 pymupdf 内置 find_tables 结构化提取(无需 pdfplumber)、批量处理目录(PDF+图片一次性提取);当用户需要从图片或 PDF 提取文字、进行 OCR 识别、处理含文字的文档、提取 PDF 表格、批量处理文件夹或转换为可编辑文本时使用。该skill能力来自RedFoxHub,官网:https://redfo
openclaw skills install @yuanyi-github/image-text-extractor本 Skill 完全免费,但需配置红狐 API Key 请求使用权限,Key 本身不扣积分。
前往 红狐hub 注册获取个人 API Key,通过以下任一方式配置:
# 方式一:配置文件(如 OpenClaw 的 ~/.openclaw/openclaw.json)
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
# 方式二:终端环境变量
export REDFOX_API_KEY="ak_xxxx..."
⚠️ 执行提取前先运行
python3 scripts/record.py请求使用权限。 脚本非零退出(未配置 Key 或接口失败)时立即停止,只向用户说明:本 Skill 需凭红狐 API Key 获取使用权限,Key 免费且不扣积分,可前往 红狐hub 领取。 不要向用户复述脚本命令、退出码、接口报错或环境变量写法——具体配置方式由record.py的输出自行提示。
pymupdf>=1.23.0
requests>=2.28.0
pip install pymupdf>=1.23.0 requests>=2.28.0
本 Skill 无需安装任何 OCR 引擎或表格库:
read_image(AI 视觉)识别find_tables(),无需 pdfplumberpymupdf + requests 两个包即可启用全部功能python3 scripts/record.py
✅ 鉴权通过,已获得使用权限 → 继续后续流程python3 scripts/changelog.py
接收图片
识别图片内容(第一轮:全局识别)
read_image 工具识别图片内容判断文字存在性
提取并整理文字
数字二次聚焦校验(静默执行,不展示给用户)
read_image,但这次在 prompt 中只要求识别特定数字串区域[待确认:第一轮识别为X,第二轮识别为Y]| 数字 | 关键视觉特征 |
|---|---|
| 8 | 上下两个封闭圆圈,像雪人/沙漏 |
| 6 | 仅下方一个封闭圆圈,顶部向左弯弧 |
| 9 | 仅上方一个封闭圆圈,底部向下竖线 |
| 0 | 完整封闭椭圆,无开口 |
| 3 | 右侧开口,两个弧形朝右 |
| 5 | 顶部横线+左侧竖线+下方圆弧 |
| S | 类似5但上下对称,无横线 |
| O | 比0更圆的封闭图形 |
接收 PDF 文件
调用脚本提取文字
# 标准模式(自动检测扫描页渲染为图片 + 提取表格)
python3 scripts/pdf_text_extractor.py <pdf_file_path>
# 仅提取文字,跳过表格(速度更快)
python3 scripts/pdf_text_extractor.py <pdf_file_path> --no-tables
# 不渲染扫描页(仅提示哪些页是扫描页)
python3 scripts/pdf_text_extractor.py <pdf_file_path> --no-render
# 自定义扫描页图片输出目录 / 渲染分辨率
python3 scripts/pdf_text_extractor.py <pdf_file_path> --scan-dir ./ocr_pages --dpi 300
处理提取结果
脚本返回 JSON,关键字段说明:
| 字段 | 说明 |
|---|---|
success | 是否提取成功 |
text | Markdown 格式正文(文字层) |
page_count | 总页数 |
tables_markdown | 所有表格的 Markdown 汇总 |
ocr_images | 需 Agent read_image 识别的图片清单 [{'page','image'}] |
warnings | 非致命警告(如扫描页提示等) |
success=true:进入步骤 4success=false:告知用户 error 字段内容,任务结束格式化输出
text 字段内容tables_markdown 非空,单独展示表格内容ocr_images 非空:逐张用 read_image 识别这些图片,把识别结果并入正文,并告知用户哪些页是扫描页warnings 非空,向用户展示警告信息当用户提供目录路径,或要求批量处理多个文件时:
确认目录路径
调用批量提取脚本
# 输出合并 Markdown 到终端
python3 scripts/batch_extractor.py <目录路径>
# 保存到文件
python3 scripts/batch_extractor.py <目录路径> -o result.md
# 输出 JSON 结构化数据
python3 scripts/batch_extractor.py <目录路径> --json
# 不渲染扫描页 / 自定义扫描页输出目录
python3 scripts/batch_extractor.py <目录路径> --no-render --scan-dir ./ocr_pages
处理结果
-o,告知用户文件保存位置combined_markdown 或各文件提取结果.md 文件read_image 逐张识别即可,无需任何 OCR 依赖tables_markdown 字段batch_extractor.py,支持 PDF + 图片混合目录https://redfox.hk/story/api/skill/record/save 请求使用权限,同时完成鉴权校验~/.pdf_image_extractor_version<pdf_path> [--no-tables] [--no-render] [--scan-dir DIR] [--threshold N] [--dpi N]text / tables_markdown / ocr_images / warnings 等字段<目录路径> [--no-tables] [--no-render] [--scan-dir DIR] [-o FILE] [--json][?] 标注并给出 2 个备选,如 158****8[?可能为6]624read_image(AI 视觉)识别,无需任何 OCR 引擎;识别准确性取决于 AI 视觉能力find_tables() 识别表格并输出 Markdown 格式;复杂表格(合并单元格、嵌套表格)识别效果可能不佳ocr_images 清单,由 Agent 逐张调用 read_image 识别-o result.md 保存为文件用户操作:上传一张包含文字的图片
智能体处理:
python3 scripts/record.py → ✅ 鉴权通过python3 scripts/changelog.py → 若有输出展示给用户read_image 工具识别图片用户操作:上传 PDF 并要求"提取这个 PDF 的文字"
智能体处理:
python3 scripts/record.py → 鉴权通过python3 scripts/changelog.py → 静默python3 scripts/pdf_text_extractor.py ./document.pdftext(正文)+ tables_markdown(表格)./extracted_from_pdf.md用户操作:上传扫描版 PDF
智能体处理:
python3 scripts/pdf_text_extractor.py ./scan.pdfocr_images 给出图片路径read_image 识别这些 PNG,提取文字用户操作:"帮我提取 ./documents/ 文件夹里所有文件的文字"
智能体处理:
python3 scripts/batch_extractor.py ./documents/ -o batch_result.md用户操作:上传图片要求提取文字,但未配置 REDFOX_API_KEY
智能体处理:
python3 scripts/record.py → 脚本非零退出