第13讲:PDF 智能处理 Skill 开发
掌握 PDF 文档的自动化处理技能,实现内容提取、格式转换、合并拆分等操作,让 PDF 处理不再繁琐。
一、场景分析
1.1 用户痛点
PDF 是办公中最常用的文档格式之一,但处理起来往往很麻烦:
- 内容提取困难:PDF 是固定格式,无法直接复制编辑,需要专门工具提取文字
- 格式转换复杂:PDF 转 Word/Excel 时经常排版错乱
- 合并拆分繁琐:多个 PDF 需要合并,或者一个大 PDF 需要拆分成多个小文件
- 批量处理低效:几百个 PDF 需要统一加水印或加密,手动操作不现实
- 信息检索不便:在大量 PDF 中搜索特定内容效率低下
1.2 典型应用场景
| 场景 | 需求描述 | Skill 价值 |
|---|---|---|
| 合同管理 | 批量提取合同关键信息(金额、日期、条款) | 自动化信息提取 |
| 发票处理 | 识别发票 PDF 内容,录入财务系统 | OCR + 数据提取 |
| 报告合并 | 将多个部门报告合并为一份完整文档 | 一键合并 |
| 文档归档 | 按规则拆分扫描件,分类存储 | 智能拆分归档 |
| 内容审核 | 检查 PDF 中的敏感信息 | 自动扫描标记 |
二、核心功能设计
2.1 Skill 功能架构
1 | 📄 PDF 智能助手 |
2.2 技术选型
PDF 处理的核心技术栈:
| 功能 | Python 库 | 说明 |
|---|---|---|
| 基础操作 | PyPDF2 / pypdf | 合并、拆分、旋转 |
| 内容提取 | pdfplumber / PyMuPDF | 文字、表格提取 |
| 格式转换 | pdf2docx / pdf2image | 转 Word/图片 |
| OCR 识别 | pytesseract + pdf2image | 扫描件识别 |
| 高级处理 | ReportLab | 生成 PDF、加水印 |
三、技术实现
3.1 Coze 平台实现
3.1.1 基础操作代码
PDF 合并功能:
1 | from pypdf import PdfReader, PdfWriter |
PDF 拆分功能:
1 | def split_pdf(file_path, split_config): |
3.1.2 内容提取代码
文字提取:
1 | import pdfplumber |
表格提取:
1 | def extract_tables(file_path, page_num=None): |
3.1.3 格式转换代码
PDF 转 Word:
1 | from pdf2docx import Converter |
PDF 转图片:
1 | from pdf2image import convert_from_path |
3.1.4 文档保护代码
添加水印:
1 | from pypdf import PdfReader, PdfWriter |
加密保护:
1 | def encrypt_pdf(input_path, output_path, password): |
3.2 OpenClaw 平台实现
OpenClaw 的 PDF Skill 更加简洁:
1 | from openclaw import Skill, Tool |
四、Prompt 设计
4.1 系统 Prompt
1 | 你是 PDF 智能助手,专门帮助用户处理 PDF 文档。 |
4.2 意图识别示例
| 用户输入 | 识别意图 | 提取参数 |
|---|---|---|
| “把这几个 PDF 合并成一个” | 合并 | 文件列表 |
| “提取这个 PDF 的前5页” | 拆分 | 文件路径、页码范围 |
| “把 PDF 转成 Word” | 格式转换 | 源文件、目标格式 |
| “给这个 PDF 加上机密水印” | 加水印 | 文件路径、水印文字 |
| “提取这个合同里的表格” | 表格提取 | 文件路径、页码 |
五、实战案例
5.1 案例一:合同信息提取
场景:法务部门需要从大量合同 PDF 中提取关键信息(金额、日期、签约方)。
解决方案:
1 | import re |
5.2 案例二:发票批量处理
场景:财务部门每月需要处理大量发票 PDF,提取信息录入系统。
解决方案:
1 | def batch_process_invoices(pdf_folder): |
六、实战练习
练习 1:PDF 合并工具
创建一个 Skill,实现以下功能:
- 接收多个 PDF 文件
- 按文件名排序后合并
- 生成目录页(显示各文件起始页码)
- 返回合并后的文件
练习 2:PDF 内容搜索
创建一个 Skill,实现以下功能:
- 在多个 PDF 中搜索关键词
- 返回包含关键词的文件列表
- 显示关键词出现的页码和上下文
- 生成搜索结果报告
练习 3:批量加水印
创建一个 Skill,实现以下功能:
- 接收文件夹路径和水印文字
- 为文件夹内所有 PDF 添加水印
- 支持自定义水印透明度
- 保存到新文件夹,保留原文件
七、常见问题
Q1:扫描件 PDF 无法提取文字怎么办?
解决方案:
- 使用 OCR 技术识别扫描件
- 推荐库:
pytesseract+pdf2image - 先转图片再识别文字
Q2:PDF 转 Word 后排版错乱怎么办?
解决方案:
- 使用
pdf2docx库,保留原排版 - 对于复杂排版,考虑使用专业工具
- 转换后手动微调
Q3:如何处理加密的 PDF?
解决方案:
- 请求用户提供密码
- 使用
pypdf的解密功能 - 注意:仅处理用户有权访问的文件
八、下节预告
下一讲我们将学习 PPT 智能生成 Skill 开发,包括:
- PPT 内容自动生成
- 模板应用与样式统一
- 图表自动插入
- 批量幻灯片处理
加入学习群

本讲是《AI Skills 从入门到实践》系列课程的第13讲。