OCR文档转换器Skill ocr

OCR文档转换器是一款基于Claude vision技术的智能文件处理工具,专门用于将PDF和图像文件通过OCR光学字符识别转换为可编辑的Markdown格式。支持批量处理、并行转换、自定义提取指令,具备智能表格识别、代码提取、多语言翻译等功能。适用于文档数字化、数据提取、内容归档等场景。关键词:OCR识别、PDF转换、图像转文本、Markdown生成、文档数字化、批量处理、智能提取、表格识别、代码提取、多格式支持。

计算机视觉 0 次安装 1 次浏览 更新于 3/2/2026

name: ocr description: “使用Claude vision功能对PDF/图像进行OCR识别并转换为Markdown格式。当用户:(1)要求将PDF/图像转换为markdown,(2)要求对任何文件进行OCR,(3)发送PDF/图像文件并要求提取/读取/转换/提取,(4)提到’OCR’、‘PDF转换’、‘图像转换’、'文本提取’时,必须使用此技能。此技能使用Task代理来保护主上下文 - 切勿在主上下文中直接处理文件。” context: fork agent: general-purpose

OCR (PDF + 图像)

使用Claude的vision功能读取PDF和图像文件并转换为Markdown格式。

支持格式

类型 扩展名
PDF .pdf
图像 .png, .jpg, .jpeg, .webp, .gif, .bmp, .tiff

快速开始

# 单个文件 (PDF或图像)
/ocr /path/to/document.pdf
/ocr /path/to/image.png

# 带有自定义指令
/ocr /path/to/document.pdf "只提取表格"
/ocr /path/to/screenshot.png "只提取代码"

# 文件夹内所有PDF/图像 (并行处理)
/ocr /path/to/folder/

核心工作流程

步骤1: 路径及文件类型确认

# 确认是文件还是文件夹
ls -la <path>

文件类型分类:

  • .pdf → PDF模式
  • .png, .jpg, .jpeg, .webp, .gif, .bmp, .tiff → 图像模式
  • 文件夹 → 进入批量模式

步骤2: 保存方式选择 (仅PDF)

仅PDF文件时向用户询问保存方式:

AskUserQuestion:
  question: "PDF转换结果如何保存?"
  header: "保存方式"
  options:
    - label: "统一保存 (推荐)"
      description: "所有页面保存为一个Markdown文件"
    - label: "按页保存"
      description: "每页保存为单独的Markdown文件 (document_p1.md, document_p2.md, ...)"

保存方式变量:

  • unified: 统一保存 → document.pdfdocument.md
  • per_page: 按页保存 → document.pdfdocument_p1.md, document_p2.md, …

图像文件: 不询问保存方式,直接 image.pngimage.md 转换


单文件模式 - 图像

单个图像文件处理工作流程。

重要: 单个文件也使用Task代理来保护主上下文。

Task(subagent_type="general-purpose"):
  提示: |
    请对图像文件进行OCR识别并转换为Markdown格式保存。

    文件: [图像绝对路径]
    自定义指令: [如有用户指令则包含]

    **执行任务:**
    1. 使用Read工具读取图像
    2. 将图像内容转换为Markdown
    3. 使用Write工具保存为[文件名].md文件
    4. 确认保存完成

    **错误处理:**
    - 413错误: "⚠️ 文件大小超限 (413错误)"
    - 其他错误: "⚠️ [错误消息]"

    **返回格式 (仅状态,不含内容):**
    ✅ 成功: [文件名] → [输出文件名].md
    或
    ⚠️ 失败: [文件名] - [原因]

单文件模式 - PDF

单个PDF文件处理工作流程。

重要: 单个文件也使用Task代理来保护主上下文。

统一保存模式 (unified)

Task(subagent_type="general-purpose"):
  提示: |
    请对PDF文件进行OCR识别并转换为Markdown格式保存。

    文件: [PDF绝对路径]
    保存方式: 统一 (所有页面保存为一个文件)
    自定义指令: [如有用户指令则包含]

    **执行任务:**
    1. 使用Read工具读取PDF
    2. 将所有页面转换为一个Markdown文件
    3. 使用Write工具保存为[文件名].md文件
    4. 确认保存完成

    **错误处理:**
    - 413错误: "⚠️ 文件大小超限 (413错误)"
    - 其他错误: "⚠️ [错误消息]"

    **返回格式 (仅状态,不含内容):**
    ✅ 成功: [文件名] → [输出文件名].md
    或
    ⚠️ 失败: [文件名] - [原因]

按页保存模式 (per_page)

Task(subagent_type="general-purpose"):
  提示: |
    请对PDF文件进行OCR识别并按页生成Markdown文件。

    文件: [PDF绝对路径]
    保存方式: 按页 (每页保存为单独文件)
    自定义指令: [如有用户指令则包含]

    **执行任务:**
    1. 使用Read工具读取PDF
    2. 将每页转换为Markdown
    3. 将每页保存为单独文件:
       - [文件名]_p1.md (第1页)
       - [文件名]_p2.md (第2页)
       - ...
    4. 确认所有文件保存完成

    **输出文件命名规则:**
    - document.pdf → document_p1.md, document_p2.md, document_p3.md, ...

    **错误处理:**
    - 413错误: "⚠️ 文件大小超限 (413错误)"
    - 其他错误: "⚠️ [错误消息]"

    **返回格式 (仅状态,不含内容):**
    ✅ 成功: [文件名] → [N]个页面文件生成
       - [文件名]_p1.md
       - [文件名]_p2.md
       - ...
    或
    ⚠️ 失败: [文件名] - [原因]

批量模式 (文件夹处理)

并行处理文件夹内多个PDF/图像文件。

1. 文件列表收集及分类

# 文件夹内支持的文件列表
ls <folder_path>/*.{pdf,png,jpg,jpeg,webp,gif,bmp,tiff} 2>/dev/null

文件分类:

  • PDF文件列表: *.pdf
  • 图像文件列表: *.png, *.jpg, *.jpeg, *.webp, *.gif, *.bmp, *.tiff

2. 保存方式选择 (仅当有PDF文件时)

仅当包含PDF文件时才询问保存方式:

AskUserQuestion:
  question: "PDF转换结果如何保存?(图像始终统一保存)"
  header: "保存方式"
  options:
    - label: "统一保存 (推荐)"
      description: "每个PDF的所有页面保存为一个Markdown文件"
    - label: "按页保存"
      description: "每个PDF的每页保存为单独的Markdown文件"

3. 批量分组 (3个一组)

将文件按3个一组分组 (PDF和图像可混合):

  • 组1: file1.pdf, image1.png, file2.pdf
  • 组2: image2.jpg, file3.pdf, image3.webp

4. 并行代理执行

对每组使用Task工具并行执行代理:

Task(subagent_type="general-purpose"):
  提示: |
    请对以下文件进行OCR识别并转换为Markdown格式。

    文件列表:
    - [file1绝对路径]
    - [file2绝对路径]
    - [file3绝对路径]

    PDF保存方式: [unified或per_page]
    自定义指令: [如有用户指令则包含]
    输出文件夹: [与原始文件夹相同]

    **文件类型处理:**
    - PDF (.pdf): 应用指定的保存方式
    - 图像 (.png, .jpg等): 始终统一保存 (image.png → image.md)

    **关键 - 每个文件在代理内完成:**
    1. 使用Read工具读取文件
    2. 发生错误时跳过并处理下一个文件 (如413错误等)
    3. 转换为Markdown
    4. **使用Write工具保存文件** (必须在代理内完成!)
    5. 确认保存完成

    **重要:**
    - 不要将转换后的Markdown内容返回给主程序
    - 文件保存必须在代理内完成
    - 主程序只接收处理结果状态

    处理结果仅按以下格式报告 (不含内容):
    ✅ 成功: [文件名] → [输出文件名].md
    ⚠️ 跳过: [文件名] - [原因]

重要:

  • 所有组的Task同时调用以实现并行执行
  • 代理在Read + Write全部完成后仅返回状态
  • 确保主上下文不加载文件内容

5. 结果汇总

所有代理完成后汇总结果:

## 📊 OCR处理结果

### ✅ 成功 ([N]个)
**PDF:**
- document1.pdf → document1.md
- document2.pdf → document2_p1.md, document2_p2.md (按页)

**图像:**
- screenshot.png → screenshot.md
- photo.jpg → photo.md

### ⚠️ 跳过 ([M]个)
- large_file.pdf - 文件大小超限 (413错误)
- corrupted.png - 读取失败

### 📁 输出位置
[folder_path]/

Markdown转换指南

分析文件内容并按以下格式转换为Markdown:

# 文档标题

## 章节1
正文内容...

### 表格
| 列1 | 列2 |
|-----|-----|
| 值  | 值  |

### 图像/图表描述
[图像描述: ...]

自定义指令应用

用户提供额外指令时:

  • “只提取表格” → 仅表格数据转换为Markdown表格
  • “请总结” → 仅核心内容摘要
  • “翻译成英文” → 翻译结果
  • “只提取代码” → 仅提取代码块

支持的内容类型

内容 转换方式
普通文本 原样转为Markdown
标题/章节 # 标题结构化
表格 Markdown表格
列表 - 或 1. 格式
图像/图表 [图像描述] 形式描述
代码 语言 代码块
公式 LaTeX ($…$) 格式
截图UI UI元素及文本提取

重要规则

上下文保护 (核心)

  • 始终 在Task代理内完成Read + Write
  • 始终 代理仅返回处理状态 (禁止返回转换内容)
  • 绝不 在主上下文中加载文件内容

处理方式

  • 始终 使用Read工具读取文件 (禁止使用库)
  • 始终 尽可能保留原始文档结构
  • 始终 用户有自定义指令时优先应用
  • 始终 发生错误时跳过该文件并继续处理其余
  • 始终 文件夹处理时按3个一组并行执行代理
  • 绝不 不使用外部库 (PyPDF, Pillow等)
  • 绝不 不猜测无法读取的部分 (不明确时标记[不明确])
  • 绝不 不在一个上下文中处理所有文件 (防止内存溢出)