用途
本技能是一份 PDF 处理指南,围绕 Python 库与命令行工具,介绍常见的 PDF 创建、提取、合并、拆分与转换操作。适用于需要以脚本或命令行方式批量处理 PDF 的场景。
主要能力
- 读取 PDF 并获取页数。
- 提取文本(逐页拼接)与带布局的文本。
- 提取表格,并可转换为 pandas DataFrame,进而导出为 Excel。
- 提取元数据(标题、作者、主题、创建者)。
- 合并多个 PDF、将 PDF 拆分为单页文件。
- 旋转页面(示例为顺时针 90 度)。
- 创建 PDF(使用 reportlab,支持单页与多页、标题、段落、分页符)。
- 添加水印(通过 merge_page 合并水印页)。
- 提取图片(使用 pdfimages)。
- 为 PDF 添加密码(用户密码与所有者密码)。
- 通过 OCR 从扫描版 PDF 提取文本(先转图片再识别)。
- 命令行操作:pdftotext 提取文本(可保留布局、指定页码范围)、qpdf 合并/拆分/旋转/解密、pdftk 合并/拆分/旋转。
使用方式
指南以代码示例和命令示例为主:
- Python:使用 pypdf 进行合并、拆分、元数据读取、旋转、水印与加密;使用 pdfplumber 提取文本与表格;使用 reportlab 创建 PDF;使用 pytesseract 与 pdf2image 对扫描件做 OCR。
- 命令行:pdftotext、qpdf、pdftk、pdfimages 等工具的命令示例。
- 快速参考表列出不同任务对应的推荐工具与命令/代码。
具体安装与依赖在示例中有所体现,例如 OCR 部分注明需 pip install pytesseract pdf2image。
适用场景
- 批量合并或拆分 PDF 文件。
- 从 PDF 中提取正文文本或表格数据并导出。
- 生成报告类 PDF。
- 为文档加水印或设置密码。
- 处理扫描版 PDF 的文字识别。
限制
- 使用 pdftk 时注明“若可用”,说明该工具并非总是存在。
- OCR 功能依赖 pytesseract 与 pdf2image,并需先转换为图片。
- 表单填写不在本篇展开,需参考 forms.md;高级 pypdfium2 用法与 JavaScript 库(pdf-lib)需参考 reference.md。
- 关于收费、价格、平台支持范围与效果等事实,资料中暂未提供。