Install
openclaw skills install slugtest提取 .docx/.xlsx/.pdf/图片 文档内容,转换为 Markdown 格式(支持 OCR 识别)。 这是**只读提取工具**,专注于将现有文档转换为 Markdown。 TRIGGER when: 用户要求提取文档内容、读取 Word/Excel/PDF 内容、提取图片文字、 OCR 识别、文档转 M...
openclaw skills install slugtest提取 .docx/.xlsx/.pdf/图片 文档内容,转换为 Markdown 格式。
/extract-doc <file_path>
参数:
file_path: 文档路径(支持 .docx/.xlsx/.pdf/.png/.jpg/.bmp)| 格式 | 扩展名 | 提取方法 | 特殊处理 |
|---|---|---|---|
| Word | .docx | python-docx | 段落、表格、列表 |
| Excel | .xlsx | openpyxl | 多 Sheet、表格 |
| pymupdf + MCP OCR | 文本型/扫描型 | ||
| 图片 | .png/.jpg/.bmp | MCP OCR | 中文/英文/代码 |
必须使用 MCP OCR,禁止安装本地 OCR 库 (pytesseract 等)。
工具: mcp__zai-mcp-server__extract_text_from_screenshot
参数:
image_source: 图片路径或 URL
prompt: 提取指令 (如 "提取所有文本内容,保持原有排版")
programming_language: 代码语言 (可选,如 "python")
首次使用前执行
pip install python-docx openpyxl pymupdf
| 库 | 版本 | 用途 |
|---|---|---|
| python-docx | >=0.8.11 | Word 解析 |
| openpyxl | >=3.1.0 | Excel 解析 |
| pymupdf | >=1.23.0 | PDF 解析 |
验证文件存在后,根据扩展名选择提取方法。
from docx import Document
doc = Document(path)
# 段落: 识别标题层级
for para in doc.paragraphs:
if para.style.name.startswith('Heading'):
level = para.style.name.split()[-1]
# 输出: {'#' * int(level)} {para.text}
else:
# 输出: para.text
# 表格: 转 Markdown 表格
for table in doc.tables:
# 第1行为表头, 其余为数据行
from openpyxl import load_workbook
wb = load_workbook(path)
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
# 第1行检测表头, 第2行起为数据, 转为 Markdown 表格
import fitz # pymupdf
doc = fitz.open(path)
for i, page in enumerate(doc, 1):
text = page.get_text().strip()
if text:
# 文本型 PDF - 直接提取
else:
# 扫描型 PDF - 渲染为图片 + MCP OCR
pix = page.get_pixmap(dpi=150)
pix.save(f"/tmp/pdf_page_{i}.png")
# 调用 mcp__zai-mcp-server__extract_text_from_screenshot(...)
直接调用:
mcp__zai-mcp-server__extract_text_from_screenshot(
image_source="D:/docs/scan.png",
prompt="提取图片中的所有文字,保持原有排版和表格结构"
)
转换为 Markdown,保持原有结构。
# 文档名称
## 元信息
- 类型: [Word/Excel/PDF/图片]
- 页数/工作表: [N]
- OCR: [是/否]
## 内容
[提取的文本内容,保持原始结构]
### 表格 1
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| ... | ... | ... |
| 错误 | 处理 |
|---|---|
| 文件不存在 | 验证路径,搜索相似文件名 |
| 库未安装 | 显示 pip install 命令 |
| 大文件 (>10MB) | 警告并建议分段提取 |
| 编码问题 | 尝试 UTF-8/GBK 解码 |
| PDF 加密 | 提示需要密码 |
| OCR 失败 | 检查图片清晰度,建议 DPI >= 150 |
| 不支持的格式 | 列出支持的格式列表 |
| 文档类型 | 用例 |
|---|---|
| 需求文档 (.docx) | 提取功能需求转 Markdown |
| 规格书 (.pdf) | 提取芯片规格、寄存器描述 |
| 测试用例 (.xlsx) | 提取测试项转为可读格式 |
| 扫描件 (.png) | OCR 识别手写笔记 |
| 代码截图 | 提取代码文本 |