用途
PDF Vision Reader 用于把视觉元素丰富的 PDF 转成可读的 Markdown。它先将 PDF 每一页渲染为图像,再借助 Claude 的 vision 功能逐页解析,从而提取标题、正文、图表、示意图、表格、截图等内容。适合演示资料、图表密集的报告、技术图纸、含图表的论文等场景。
主要能力
- 将 PDF 每页转换为 PNG 图像,可指定分辨率(默认 200 DPI)。
- 自动创建输出目录,按页命名(page_001.png、page_002.png……)。
- 通过 Read 工具逐张读取图像并解析,可提取:标题与见顶、正文、列表、注释;图表类型与说明;图表轴标签、数据点与趋势;表格结构与内容(可转为 Markdown 表格);页面版式与强调信息。
- 支持文本(日文、英文)、图表、示意图、表格、截图、信息图、复杂版式。
- 手写笔记与低分辨率图像的识别精度视情况而定。
- 可只解析指定页码范围。
使用方式
前提条件:
# Python 包
wsl pip3 install pdf2image Pillow
# 系统包 (poppler)
wsl sudo apt-get update
wsl sudo apt-get install -y poppler-utils
基本流程:
# 1. PDF 转图像
wsl python3 scripts/pdf_to_images.py "/mnt/c/path/to/file.pdf"
# 2. 用 Read 工具逐张读取图像并解析
# 3. 汇总为 Markdown
脚本用法:
python scripts/pdf_to_images.py <pdf_path> [output_dir] [dpi]
# 示例
python scripts/pdf_to_images.py document.pdf ./images 300
输出:
[pdf_name]_pages/page_001.png
[pdf_name]_pages/page_002.png
...
解析时可给出指令示例:
请详细说明这张图像的内容:
- 标题与见顶
- 正文文本
- 图表说明
- 图表与图形的数据
- 要点
Markdown 输出格式示例:
# [PDF标题]
**解析时间:** YYYY-MM-DD
**总页数:** N
---
## Page 1: [页面标题]
### 概要
[页面概要说明]
### 主要内容
- [要点1]
- [要点2]
### 图表
**图1: [图表标题]**
[图表说明]
### 文本内容
[页面内文本]
---
## Page 2: [页面标题]
...
适用场景
- 演示资料 Markdown 化。
- 只解析指定页面(如第 5–10 页)。
- 图表、图形密集的资料。
- 技术图纸、设计文档。
- 含图表的论文。
与文本抽取的差异
pdf-reader(文本抽取):适合纯文本 PDF,速度快,纯文本抽取,无法抽取图表,版式会被简化。 pdf-vision-reader(图像解析):能理解图表与图形,保留复杂版式,可说明视觉元素,但处理时间更长,并产生图像解析的 API 成本。
推荐用法:文本为主的文档用 pdf-reader;演示资料、图表密集资料、技术图纸、含图表的论文用 pdf-vision-reader;简单文本 PDF 用 pdf-reader。
性能参考
| 页数 | 图像转换 | 解析(Claude vision) | 合计 |
|---|---|---|---|
| 10 页 | 5 秒 | 30–60 秒 | 约 1 分钟 |
| 30 页 | 15 秒 | 90–180 秒 | 约 3 分钟 |
| 100 页 | 50 秒 | 300–600 秒 | 约 10 分钟 |
优化建议:只处理必要页面;图表多时用 300 DPI,文本为主时用 150–200 DPI;多个 PDF 顺序处理而非并行;Windows 路径转 WSL 路径(C:\Users... → /mnt/c/Users/...,D:\Projects... → /mnt/d/Projects/...)。
限制
- 手写笔记识别精度视情况而定。
- 低分辨率图像可能降低精度。
- 处理时间较长,并产生图像解析的 API 成本。
- 图像转换失败时需检查 PDF 是否损坏、磁盘空间与内存(大 PDF 可拆分处理)。
- 解析精度低时可提高 DPI(推荐 300)并检查原 PDF 画质。
相关工具
pdf-reader(文本为主的 PDF)、docx-reader(Word 文档)、OCR 工具 pytesseract(文本特化)。
版本历史
v1.0.0(2026-01-06):初始发布,包含 PDF→图像转换、基于 vision 的解析工作流、图表理解、Markdown 输出格式。