SuperAPI AI 工具集

pdf-reader

通用与其它

查看项目

更新于 10-14 16:47

技能介绍

用途

PDF Reader 是一个用于读取 PDF 文件并抽取文本内容的技能,可将抽取结果转换为 Markdown 格式。它适用于需要读取 PDF 文档的场景,并支持处理表格和多页文档。

主要能力

  • 文本提取(全页)
  • 表格的 Markdown 化
  • 保留页码
  • 结构化输出

支持的功能标注为:

✅ 文本提取(全页) ✅ 表格的 Markdown 化 ✅ 保留页码 ✅ 结构化输出

注意:图像中的文本提取(不支持 OCR)。复杂版式会被简化。

使用方式

快速开始

基本用法(在 WSL 环境执行 Python 脚本):

wsl python3 scripts/read_pdf.py "/mnt/c/path/to/file.pdf"

保存为 Markdown 格式:

  • 使用脚本抽取文本
  • 使用 Write 工具保存为 .md 文件

前置条件

需要 pdfplumber 包:

wsl pip3 install pdfplumber

使用示例

示例1:读取 PDF 文件并显示内容

用户:“读取 C:\Users\keita\repos\guideline.pdf” 助手:

  1. 将 Windows 路径转换为 WSL 路径:/mnt/c/Users/keita/repos/guideline.pdf
  2. 执行 wsl python3 scripts/read_pdf.py
  3. 以 Markdown 格式显示抽取出的文本

示例2:将 PDF 转换为 Markdown 并保存

用户:“将 ガイドライン.pdf 转换为 Markdown 并保存” 助手:

  1. 使用 scripts/read_pdf.py 抽取文本
  2. 以 Markdown 格式结构化(按页添加标题,包含表格)
  3. 使用 Write 工具保存为 ガイドライン.md
  4. 报告保存完成

工作流

单文件读取:

  • 用户指定 PDF 文件路径
  • 将 Windows 路径转换为 WSL 路径格式(C:\ → /mnt/c/)
  • 执行 wsl python3 scripts/read_pdf.py
  • 以 Markdown 格式显示或保存抽取的文本

多文件批量处理:

  • 使用 Glob 搜索 .pdf 文件
  • 对每个文件执行脚本
  • 汇总报告结果

输出格式

Markdown 结构示例:

# [PDF文件名]

**Total Pages:** 10

---

## Page 1

[第1页文本内容]

### Tables

**Table 1:**

| 列1 | 列2 | 列3 |
| --- | --- | --- |
| 数据1 | 数据2 | 数据3 |

---

## Page 2

[第2页文本内容]

---

脚本详情

Python 脚本位于 scripts/read_pdf.py。

主要功能:

  • 逐页文本抽取
  • 表格的 Markdown 化
  • 多页结构化
  • 错误处理

用法:

python scripts/read_pdf.py <file_path>

适用场景

  • 需要读取 PDF 文档时
  • 需要将 PDF 内容转换为 Markdown 以便后续处理或保存
  • 需要提取 PDF 中的表格内容
  • 需要处理包含多页的 PDF 文档

限制

  • 无法从扫描版 PDF(仅图像)中提取文本
  • 不包含 OCR 功能
  • 复杂版式会被简化
  • 字体信息、颜色等样式会丢失
  • 嵌入对象不会被提取

故障排查

未安装 pdfplumber:

wsl pip3 install pdfplumber

无法抽取文本:

  • PDF 可能是扫描图像(需要 OCR)
  • PDF 可能已加密
  • PDF 可能没有文本层

出现乱码:

# 确认日文支持
wsl locale
# 确认包含 UTF-8

内存不足错误:

对于较大的 PDF 文件,可考虑分页处理。

路径转换

从 Windows 路径转换到 WSL 路径:

C:\Users\... → /mnt/c/Users/...
D:\Projects\... → /mnt/d/Projects/...

将反斜杠 \ 转换为斜杠 /。

相关工具

  • PyPDF2: 轻量替代库
  • pdfminer.six: 需要更精细控制时使用
  • Camelot: 专用于表格提取
  • OCRmyPDF: 为扫描版 PDF 应用 OCR

高级用法

仅抽取指定页面:

可修改脚本,使用 pdf.pages[0:5] 这样的切片。

仅抽取表格:

仅使用脚本内的 extract_tables() 部分。

需要 OCR 时:

结合使用 pytesseract 与 pdf2image(建议作为单独技能创建)。

版本历史

v1.0.0 (2026-01-06): 初始发布

  • 基本文本抽取功能
  • 支持表格 Markdown 化
  • 在 WSL 环境运行
  • 按页结构化