P

PDF和图片文字提取

作者:鹿Sir办公效率v1

从图片或PDF文档中识别并提取文字内容,支持多种图片格式和PDF文件,自动判断是否包含文字并保留原始格式输出结构化结果。当用户需要从图片或PDF提取文字、进行OCR识别时触发。触发词:PDF提取、PDF转文字、图片文字识别、OCR识别。

下载量
272
点赞
68
价格
免费

技能文档

---
name: pdf-image-text-extractor-cn
title: PDF和图片文字提取
category: 办公效率
description: 从图片或PDF文档中识别并提取文字内容,支持多种图片格式和PDF文件,自动判断是否包含文字并保留原始格式输出结构化结果。当用户需要从图片或PDF提取文字、进行OCR识别时触发。触发词:PDF提取、PDF转文字、图片文字识别、OCR识别。
---

# PDF和图片文字提取

## 技能工作流

### 步骤1:任务目标

- 本 Skill 用于:从用户上传的图片或 PDF 文档中识别并提取文字内容
- 能力包含:图片文字检测、PDF 文字提取、格式保留、结构化输出、Markdown 文件生成
- 触发条件:用户上传图片或 PDF 并要求提取文字,或询问文档中的文字内容

## 前置准备

### 依赖说明

脚本所需的依赖包及版本:
```
pymupdf>=1.23.0
```

安装命令:
```bash
pip install pymupdf>=1.23.0
```

### 支持的文件格式

- 图片格式:PNG、JPG、JPEG、GIF、WebP、BMP 等常见格式
- 文档格式:PDF(支持扫描版和文字版)

## 操作步骤

### 标准流程

#### 图片文字提取流程

1. **接收图片**
   - 确认用户已上传图片文件
   - 获取图片的访问 URL

2. **识别图片内容(第一轮:全局识别)**
   - 使用 `read_image` 工具识别图片内容
   - 在 prompt 中明确要求识别所有文字内容,包括标题、正文、注释、水印等
   - 对数字字符需特别注意视觉形状特征(封闭圆圈数、开口方向、弧线走向),确保 6/8/9/0/3 等易混淆数字准确识别

3. **判断文字存在性**
   - 如果检测到文字:进入步骤 4
   - 如果未检测到文字:告知用户"图片中未包含可提取的文字",任务结束

4. **提取并整理文字**
   - 提取图片中的所有文字内容
   - 保持原有的结构和排版
   - 整理为易读的格式

5. **数字二次聚焦校验(静默执行,不展示给用户)**
   - ⚠️ **重要**:整个校验过程(包括形状描述、对比表格、校验轮次等)必须静默执行,禁止在对话输出中展示任何校验过程,只向用户展示最终确认的提取结果
   - 对第一轮提取结果中的所有数字串(手机号、订单号、金额、日期等),执行二次聚焦识别:
   - **策略 A:局部放大验证**
     - 再次使用 `read_image`,但这次在 prompt 中只要求识别特定数字串区域
     - prompt 模板:「请只关注图片中的数字串 [上下文描述],逐位描述每个数字字符的视觉形状(有几个封闭圆圈、开口方向、弧线走向),然后给出最终判断结果」
   - **策略 B:交叉验证**
     - 将第一轮的形状描述与第二轮的独立判断进行对比
     - 如果两轮结果一致 → 确认为最终结果
     - 如果两轮结果不一致 → 标注 `[待确认:第一轮识别为X,第二轮识别为Y]`
   - **易混淆数字对速查表**:
     | 数字 | 关键视觉特征 |
     |------|-------------|
     | **8** | 上下两个封闭圆圈,像雪人/沙漏 |
     | **6** | 仅下方一个封闭圆圈,顶部向左弯弧 |
     | **9** | 仅上方一个封闭圆圈,底部向下竖线 |
     | **0** | 完整封闭椭圆,无开口 |
     | **3** | 右侧开口,两个弧形朝右 |
     | **5** | 顶部横线+左侧竖线+下方圆弧 |
     | **S** | 类似5但上下对称,无横线 |
     | **O** | 比0更圆的封闭图形 |

#### PDF 文字提取流程

1. **接收 PDF 文件**
   - 确认用户已上传 PDF 文件
   - 获取 PDF 文件的本地路径

2. **调用脚本提取文字**
   - 执行命令:`python scripts/pdf_text_extractor.py <pdf_file_path>`
   - 脚本会自动提取所有页面的文本
   - 尽量保留原文的段落结构和标题层级

3. **处理提取结果**
   - 如果提取成功:进入步骤 4
   - 如果提取失败:告知用户错误信息,任务结束

4. **格式化输出**
   - 脚本返回的文本为 Markdown 格式
   - 可直接展示或保存为文件

### 统一输出步骤

5. **生成输出结果**
   - 根据用户需求生成 Markdown 文件
   - 包含文件来源、提取状态、文字内容等信息
   - 使用清晰的标题和结构组织内容

### 可选分支

- 当用户仅需查看文字内容:直接输出文字,不生成文件
- 当用户要求保存结果:生成 `.md` 文件
- 当图片/PDF 文字模糊或难以识别:说明情况并提供最佳识别结果
- 当 PDF 包含扫描图片:提示用户该页面为扫描图片,可能需要 OCR 处理

## 资源索引

- 必要脚本:见 [scripts/pdf_text_extractor.py](scripts/pdf_text_extractor.py)
  - 用途:从 PDF 文件中提取文本内容并保留格式
  - 参数:PDF 文件路径
  - 输出:JSON 格式结果,包含提取的文本和元信息

## 注意事项

### 图片文字提取
- **识别准确性**:文字识别结果受图片清晰度、字体、背景等因素影响,可能存在误差
- **「先看形状再判数字」原则**:识别数字时必须先描述字符的视觉形状特征(封闭圆圈数、开口方向、弧线走向),再根据特征判断数字,禁止跳过形状描述直接输出数字
- **关键数字串双重识别**:手机号、身份证号、银行卡号、订单号等关键数字串,必须执行两轮识别(全局识别 + 聚焦校验),两轮不一致时标注待确认
- **校验过程静默执行**:数字二次校验的形状描述、对比表格、轮次记录等过程信息严禁展示给用户,只在后台静默执行,最终仅输出确认后的提取结果
- **存疑标注**:对无法100%确认的字符,使用 `[?]` 标注并给出 2 个备选,如 `158****8[?可能为6]624`
- **文字排版**:提取时尽量保持原图的文字结构和顺序
- **多语言支持**:支持识别中文、英文等多种语言文字

### PDF 文字提取
- **格式保留**:脚本会尽量保留原文的段落结构和标题层级
- **扫描版 PDF**:如果 PDF 是扫描图片,文字可能无法提取,需要告知用户
- **复杂布局**:表格、多栏等复杂布局的提取效果可能不佳
- **加密 PDF**:不支持加密或受密码保护的 PDF 文件

### 通用注意事项
- **隐私保护**:处理的文件不会被存储,仅在当前会话中使用
- **文件大小**:建议处理小于 50MB 的文件,过大文件可能导致处理缓慢

## 使用示例

### 示例 1:图片文字提取

**用户操作**:上传一张包含文字的图片

**智能体处理**:
1. 使用 `read_image` 工具识别图片
2. 提取文字内容:"所有经历的纠缠 / 还有难过的遗憾 / 都不可能没有意义"
3. 直接输出提取结果

### 示例 2:PDF 文字提取并保存

**用户操作**:上传 PDF 并要求"提取这个 PDF 的文字"

**智能体处理**:
1. 确认 PDF 文件路径
2. 执行脚本:`python scripts/pdf_text_extractor.py ./document.pdf`
3. 获取提取结果,包含 10 页内容
4. 生成 Markdown 文件:`./extracted_from_pdf.md`

### 示例 3:处理扫描版 PDF

**用户操作**:上传扫描版 PDF

**智能体处理**:
1. 执行脚本提取文字
2. 发现部分页面提取为空
3. 告知用户:"检测到部分页面可能为扫描图片,文字无法直接提取。建议使用 OCR 工具处理。"

使用说明

# PDF和图片文字提取 / pdf-image-text-extractor

---

## 简介

上传图片或 PDF,自动识别并提取其中的文字内容,保留原文结构与排版,输出清晰易读的结果。

**核心价值**

- **即传即识**:上传图片或 PDF,无需额外操作,自动完成文字识别与提取。
- **格式保留**:尽量保持原文的段落结构、标题层级,提取结果可直接使用。
- **多格式覆盖**:支持 PNG、JPG、JPEG、GIF、WebP、BMP 等常见图片格式及 PDF 文档。

**适用对象**

- 📄 **办公人员** — 快速从扫描件、合同、报告中提取文字,告别逐字手打。
- 📚 **学生 / 研究者** — 从文献 PDF 中提取内容,方便整理笔记与引用。
- ✍️ **内容创作者** — 从图片素材中获取文字参考,提升创作效率。

---

## 功能特性

### 核心功能

- **图片文字提取**:上传图片即可识别其中所有文字,包括标题、正文、注释等。
- **PDF 文字提取**:自动解析 PDF 页面文字,多页文档一次性处理。
- **格式保留**:提取时尽量保持原文的段落结构和标题层级,减少后续整理工作。
- **结构化输出**:结果以清晰的 Markdown 格式呈现,方便复制或导出。

---

## 使用指南

直接用自然语言描述需求即可,无需记忆命令。

### 常用说法速查

| 意图           | 示例话术                       | 效果                                 |
| -------------- | ------------------------------ | ------------------------------------ |
| 提取图片文字   | 上传图片后说"提取图片里的文字" | 自动识别并输出图片中的所有文字内容   |
| 提取 PDF 文字  | 上传 PDF 后说"把这个 PDF 转文字" | 自动解析所有页面,保留段落结构输出   |
| 保存提取结果   | "把提取结果保存下来"           | 生成 Markdown 文件,方便后续使用     |

### 输出示例

提取完成后,你将看到类似以下格式的内容:

```markdown
## 页面 1

所有经历的纠缠
还有难过的遗憾
都不可能没有意义

---

## 页面 2

...
```

PDF 多页文档以 `---` 分隔不同页面,便于区分。

---

## 使用场景

| 场景         | 角色         | 示例问法                         | 收益                               |
| ------------ | ------------ | -------------------------------- | ---------------------------------- |
| 文档数字化   | 办公人员     | "把这份合同 PDF 转成文字"        | 告别逐字手打,快速完成文档电子化   |
| 文献整理     | 学生 / 研究者 | "提取这篇论文 PDF 的内容"        | 方便做笔记、引用和检索             |
| 图片转文字   | 内容创作者   | "识别这张截图里的文字"           | 快速获取参考文案,提升创作效率     |
| 资料归档     | 个人用户     | "把扫描件里的文字提出来存档"     | 纸质文件数字化,方便搜索和管理     |

---

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手

PDF和图片文字提取 - 免费 | 技能派