用途
本技能是一份 PDF 处理指南,帮助 Claude 使用 Python 库和命令行工具完成常见的 PDF 操作。它覆盖从读取、解析到创建、修改 PDF 的多种任务,适合在需要自动化处理 PDF 文档时参考。
主要能力
指南涉及以下操作:
- 读取 PDF 并获取页数、元数据(标题、作者、主题、创建者)。
- 提取文本,包括保留布局的文本提取。
- 提取表格,并可将多个表格合并后导出为 Excel。
- 创建新 PDF,支持单页和多页文档,可添加文本、线条、段落和分页。
- 合并多个 PDF 文件。
- 拆分 PDF,将每一页输出为单独文件。
- 旋转页面。
- 添加水印。
- 提取 PDF 中的图片。
- 为 PDF 添加密码保护,或移除已有密码。
- 对扫描版 PDF 进行 OCR 识别(需先转换为图片)。
- 填写 PDF 表单(指南提示参见 forms.md)。
使用方式
指南以代码示例和命令示例的形式给出具体操作方式。
Python 库方面:
- pypdf:用于基础操作,如读取、合并、拆分、旋转、提取元数据、添加水印和密码保护。
- pdfplumber:用于提取文本和表格,支持按页遍历和表格导出。
- reportlab:用于创建 PDF,提供 Canvas 和 Platypus 两种方式。
- pytesseract 与 pdf2image:用于扫描件 OCR,需先安装依赖。
命令行工具方面:
- pdftotext(poppler-utils):提取文本,支持保留布局和指定页码范围。
- qpdf:合并、拆分、旋转页面、移除密码。
- pdftk:合并、拆分、旋转(如环境可用)。
- pdfimages(poppler-utils):提取图片。
指南还提供了一张快速参考表,列出常见任务对应的推荐工具和命令/代码。
适用场景
- 需要从 PDF 中批量提取文本或表格数据。
- 需要将多个 PDF 合并为一个,或将一个 PDF 拆分为多页文件。
- 需要程序化生成 PDF 报告或文档。
- 需要处理扫描版 PDF 并进行 OCR。
- 需要为 PDF 添加水印、密码保护或移除密码。
- 需要提取 PDF 中的图片。
限制
- 指南中提到的部分工具(如 pdftk)标注为“if available”,即并非所有环境都可用。
- OCR 功能需要额外安装 pytesseract 和 pdf2image,并依赖外部 OCR 引擎。
- 填写 PDF 表单的具体步骤未在本指南中展开,需参考 forms.md。
- 高级功能(如 pypdfium2、JavaScript 库 pdf-lib)和详细示例需参考 reference.md。
- 本指南未说明各工具的性能、兼容性或平台限制。