用途
本技能是一份 PDF 处理指南,覆盖使用 Python 库和命令行工具完成常见 PDF 操作的方法。适用于需要读取、生成、修改或转换 PDF 文档的场景。
主要能力
- 基础操作(pypdf):读取 PDF、提取文本、合并多个 PDF、拆分页面、提取元数据(标题、作者、主题、创建者)、旋转页面。
- 文本与表格提取(pdfplumber):按布局提取文本、提取表格,并可将表格数据转换为 pandas DataFrame 后导出为 Excel。
- 创建 PDF(reportlab):使用 Canvas 绘制文本和线条生成简单 PDF,或使用 Platypus(SimpleDocTemplate、Paragraph、Spacer、PageBreak)创建多页文档。
- 命令行工具:pdftotext 提取文本(支持保留布局、指定页码范围);qpdf 合并、拆分、旋转页面、移除密码;pdftk 合并、拆分、旋转(如可用)。
- 常见任务:对扫描版 PDF 使用 pytesseract 与 pdf2image 进行 OCR;使用 pypdf 添加水印;使用 pdfimages 提取图片;使用 pypdf 添加密码保护。
使用方式
文档以代码示例形式给出各操作的具体实现,例如:
- 读取 PDF:
from pypdf import PdfReader, PdfWriter,reader = PdfReader("document.pdf"),len(reader.pages)。 - 合并:遍历多个 PDF 文件,将每页通过
writer.add_page(page)加入,最后writer.write(output)。 - 拆分:逐页创建 PdfWriter 并写入单独文件。
- 提取表格:
page.extract_tables(),可结合 pandas 处理。 - 创建 PDF:
canvas.Canvas("hello.pdf", pagesize=letter)或SimpleDocTemplate。 - 命令行:
pdftotext -layout input.pdf output.txt、qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf等。
文档还提供快速参考表,列出任务与推荐工具及对应命令/代码。
适用场景
- 从 PDF 中批量提取文本或表格数据。
- 将多个 PDF 合并为一个,或将一个 PDF 拆分为多个文件。
- 程序化生成 PDF 报告或文档。
- 处理扫描版 PDF(需 OCR)。
- 为 PDF 添加水印、密码保护或提取内嵌图片。
- 通过命令行快速完成 PDF 转换与页面操作。
限制
- 文档提到高级功能、JavaScript 库(pdf-lib)及详细示例见 reference.md;填写 PDF 表单需阅读 forms.md 并遵循其说明。
- OCR 功能需要额外安装 pytesseract 和 pdf2image。
- pdftk 标注为“if available”(如可用)。
- 关于收费、价格、平台支持范围等信息暂未提供。