用途
本技能是一份 PDF 处理指南,用于在 OpenCode 中完成常见的 PDF 操作。它面向需要读取、生成或修改 PDF 文档的场景,提供基于 Python 库和命令行工具的实现方式与代码示例。
主要能力
指南覆盖以下操作:
- 读取 PDF 并统计页数、提取文本
- 提取元数据(标题、作者、主题、创建者)
- 合并多个 PDF、拆分 PDF(每页一个文件)
- 旋转页面
- 使用 pdfplumber 按布局提取文本、提取表格,并可结合 pandas 将表格导出为 Excel
- 使用 reportlab 创建 PDF(基础 Canvas 绘制、多页文档、段落与分页)
- 命令行工具:pdftotext(提取文本、保留布局、指定页码范围)、qpdf(合并、拆分、旋转、解密)、pdftk(合并、拆分、旋转)、pdfimages(提取图片)
- 对扫描版 PDF 进行 OCR(需安装 pytesseract 与 pdf2image,先转图片再识别)
- 添加水印
- 为 PDF 添加密码保护
使用方式
指南以代码片段形式给出操作步骤。Python 部分主要使用 pypdf、pdfplumber、reportlab,OCR 部分使用 pytesseract 和 pdf2image。命令行部分使用 poppler-utils 中的 pdftotext、pdfimages,以及 qpdf、pdftk。文档末尾提供快速参考表,按任务列出推荐工具与对应命令或代码。
指南还提到:如需高级功能、JavaScript 库(pdf-lib)和详细示例,参见 reference.md;如需填写 PDF 表单,参见 forms.md 并按其说明操作;故障排查指南也在 reference.md 中。
适用场景
适用于需要在自动化流程或脚本中处理 PDF 的任务,例如批量合并/拆分文档、从报表中提取表格数据、生成报告 PDF、处理扫描件文本、为文档加水印或加密等。
限制
- 扫描版 PDF 的文本提取需要额外安装 pytesseract 与 pdf2image,并依赖 OCR 环境。
- pdftk 标注为“if available”,即并非所有环境都可用。
- 表单填写、高级 pypdfium2 用法、JavaScript 库等未在本指南正文展开,需查阅 reference.md 或 forms.md。
- 关于收费、价格、平台支持范围等信息,资料中暂未提供。