技能包

pdf:用 Python 处理 PDF 文件

适合在用户提到或要求产出 PDF 时使用,前提是先用 pypdf 只读打开本地文件确认页数,填表则改走 FORMS.md。

官方来源 · pdf

安装

from pypdf import PdfReader, PdfWriter

适合谁

当用户提到 .pdf 文件,或要求产出一份 PDF 时,使用这份 pdf 说明。它覆盖读取或抽取文本/表格、合并、拆分、旋转、加水印、新建、填表、加解密、抽图,以及对扫描件做 OCR 以便检索。它不是某一家阅读器的替代品,也不负责替你选择未点名的商业服务。

更合适的前提是:你准备用 Python 库和命令行工具做这些基本操作。资料写明进阶功能、JavaScript 库和更细的例子要看 REFERENCE.md,因此不要把这份入门说明当成完整手册。资料没有给出可用代理产品名单,也不要把 Python 或 JavaScript 理解成互斥的唯一运行时。官方说明页是

https://raw.githubusercontent.com/anthropics/skills/main/skills/pdf/SKILL.md

3 分钟完成第一次尝试

推荐的第一条路径就是资料里的 pypdf 读取示例,而不是另造安装器。前置:本机已有 Python,并能执行 from pypdf import PdfReader, PdfWriter。若导入失败,先停在导入错误,不要改写 PDF。

低风险第一次尝试:准备一个本地已有的 document.pdf。先确认该文件存在,再只读打开并打印页数:

from pypdf import PdfReader, PdfWriter
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

成功信号:终端打出 Pages: 加上一个数字。这是读取,不是合并、加密或覆盖。若文件不存在,停在打开失败,不要新建或下载一份未点名的 PDF。PdfWriter 虽被同一行导入,但第一次不要调用写盘。

使用案例

案例一:确认一份本地 PDF 有多少页,并以此作为后续抽取的起点。操作就是上面的 PdfReader("document.pdf") 与 len(reader.pages)。资料把读取和抽取文本/表格列为能力,但摘录只把页数打印写完整,因此第一次完成标准是得到页数;若还要抽文本,必须回到同一页继续找对应调用,不能把页数输出写成已经抽完全文。

案例二:需要填写 PDF 表单。资料写明:If you need to fill out a PDF form, read FORMS.md and follow its instructions。因此这条路径的第一步是打开 FORMS.md 并按其步骤进行,而不是在本页发明填表字段或保存命令。完成标准是你已经按 FORMS.md 开始,而不是假设表单已提交。若目标其实是扫描件 OCR,资料另给了 pip install pytesseract pdf2image 以及 convert_from_path,那是另一条要求额外依赖的路径,不要和填表混成一步。

使用边界

基本操作面向 Python 库和命令行工具;进阶、JavaScript 与详细例子指向 REFERENCE.md,本页没有展开。OCR 需要 pytesseract 与 pdf2image,先把页面转成图像。填表必须走 FORMS.md。

资料没有给出图形界面安装包,也没有客户端名单。合并、拆分、旋转、水印、加密、抽图虽被点名为能力,但摘录没有给出这些操作的完整命令,因此不能把它们写成已经可复制的步骤。写盘、加密或覆盖原文件前,先确认目标路径和副作用,再执行。