前言¶
做開發或運維,PDF 幾乎是繞不開的格式:合同掃描件要 OCR 成可搜索文本,多張發票要合併成一份歸檔,報表裏的表格要抽出來進 Excel,還有帶密碼的 PDF、要填寫的表單、要加水印的內部文檔……每次碰到這些需求,往往要在瀏覽器插件、Python 腳本和命令行工具之間來回切換,還得自己查 API 文檔。
如果你已經在用 Cursor、Claude Code 或 Codex 這類 AI 編程助手,Anthropic 官方維護的 pdf Skill 可以把上述流程收攏成一套可複用的工作方式:Agent 讀到 Skill 裏的操作指南後,會按場景選用 pypdf、pdfplumber、reportlab 等 Python 庫,或 pdftotext、qpdf 等命令行工具來完成任務。本文基於官方倉庫覈實後整理,介紹這個 Skill 的定位、能力與安裝用法。
這是什麼¶
pdf 是 Anthropic 在 anthropics/skills 倉庫中提供的 Agent Skill,遵循 Agent Skills 開放標準,可在 Cursor、Claude Code、Codex CLI 等支持該標準的工具中使用。
它的核心定位很直接:只要用戶提到 .pdf 文件,或要做 PDF 相關操作,Agent 就應加載此 Skill,並按其中的 Processing Guide 執行。Skill 的 YAML frontmatter 寫明瞭觸發範圍——讀取與提取文本/表格、合併拆分、旋轉頁面、加水印、創建 PDF、填寫表單、加密解密、提取圖片、對掃描件做 OCR 等。
需要說明的是,pdf 與 docx、pptx、xlsx 同屬 Anthropic 的「文檔類 Skill」,是 Claude 文檔能力在倉庫中的參考實現。官方 README 註明:這些文檔 Skill 爲 source-available(源碼可參考),許可爲 Proprietary,並非 Apache 2.0 開源;使用前請閱讀目錄下的 LICENSE.txt。
核心功能與亮點¶
Skill 主體在 SKILL.md,表單填寫詳見 forms.md,高級用法與 JavaScript 庫(如 pdf-lib)見 reference.md。目錄結構如下:
skills/pdf/
├── SKILL.md # 主指南與常用代碼片段
├── forms.md # PDF 表單填寫專項說明
├── reference.md # 進階參考(pypdfium2、pdf-lib 等)
├── scripts/ # 可選輔助腳本
└── LICENSE.txt
官方 Quick Reference 按任務類型給出了推薦工具,主要能力如下:
| 任務 | 推薦工具 | 說明 |
|---|---|---|
| 合併 PDF | pypdf / qpdf | Python 逐頁追加,或命令行 --pages 合併 |
| 拆分 PDF | pypdf / qpdf | 按頁導出單頁文件,或指定頁碼範圍 |
| 提取文本 | pdfplumber / pdftotext | 保留佈局時用 -layout 參數 |
| 提取表格 | pdfplumber | 可配合 pandas 導出 Excel |
| 創建 PDF | reportlab | Canvas 或 Platypus 排版 |
| 掃描件 OCR | pytesseract + pdf2image | 先轉圖片再識別 |
| 加水印 | pypdf | merge_page 疊加水印頁 |
| 加密/解密 | pypdf / qpdf | Python 設密碼,qpdf 去密碼 |
| 提取圖片 | pdfimages | poppler-utils 自帶 |
| 填寫表單 | 見 forms.md | pdf-lib 或 pypdf |
幾個值得注意的官方細節:
- ReportLab 上下標:不要用 Unicode 上下標字符(如 H₂O),內置字體會顯示黑塊;應使用
<sub>、<super>標籤。 - 表單填寫:Skill 明確要求先讀
forms.md,不要憑猜測填字段。 - 漸進式加載:主文件只放常用操作,複雜場景按需讀
reference.md,節省 Agent 上下文。
安裝與啓用¶
pdf Skill 本質是帶 SKILL.md 的文件夾,各工具的安裝方式略有差異。
Claude Code¶
官方推薦通過 Plugin 安裝整包文檔 Skill:
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
安裝後,在對話中直接說明需求即可,例如:「Use the PDF skill to extract the form fields from path/to/file.pdf」。Agent 會根據 Skill 描述自動匹配,也可在支持 / 命令的環境中顯式調用。
Claude.ai 付費計劃用戶也可在網頁端按 Using skills in Claude 上傳或啓用自定義 Skill。
Cursor¶
Cursor 啓動時會自動掃描以下目錄(項目級優先於用戶級):
| 位置 | 作用域 |
|---|---|
.cursor/skills/ 或 .agents/skills/ |
當前項目 |
~/.cursor/skills/ 或 ~/.agents/skills/ |
全局 |
將官方 skills/pdf 目錄複製到上述路徑之一即可,例如:
git clone https://github.com/anthropics/skills.git
mkdir -p ~/.cursor/skills
cp -r skills/skills/pdf ~/.cursor/skills/pdf
也可在 Cursor 側邊欄 Customize → Rules → Add Rule → Remote Rule (Github) 中填入倉庫地址導入。Agent 會根據對話上下文自動選用 pdf Skill,或在 Agent 聊天中輸入 / 搜索 pdf 手動調用。
Codex CLI¶
Codex 遵循 Agent Skills 標準,默認掃描:
| 位置 | 作用域 |
|---|---|
.agents/skills/ |
當前倉庫 |
~/.agents/skills/ |
用戶全局 |
安裝示例:
mkdir -p ~/.agents/skills
git clone --depth 1 https://github.com/anthropics/skills.git /tmp/anthropics-skills
cp -r /tmp/anthropics-skills/skills/pdf ~/.agents/skills/pdf
Codex 內置 $skill-installer 也可從遠程倉庫安裝 Skill;舊版 ~/.codex/skills/ 目錄仍可能被兼容掃描,但官方文檔已推薦遷移到 ~/.agents/skills/。
典型用法示例¶
啓用 Skill 後,用自然語言描述任務即可,Agent 會按官方指南生成並執行代碼。以下是 SKILL.md 中的代表性片段,便於理解 Skill 教 Agent「怎麼做」。
讀取 PDF 並提取文本¶
from pypdf import PdfReader
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
text = ""
for page in reader.pages:
text += page.extract_text()
合併多份 PDF¶
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
reader = PdfReader(pdf_file)
for page in reader.pages:
writer.add_page(page)
with open("merged.pdf", "wb") as output:
writer.write(output)
用 pdfplumber 提取表格¶
import pdfplumber
import pandas as pd
with pdfplumber.open("document.pdf") as pdf:
all_tables = []
for page in pdf.pages:
for table in page.extract_tables():
if table:
df = pd.DataFrame(table[1:], columns=table[0])
all_tables.append(df)
if all_tables:
combined_df = pd.concat(all_tables, ignore_index=True)
combined_df.to_excel("extracted_tables.xlsx", index=False)
掃描件 OCR¶
需先安裝依賴 pytesseract、pdf2image,以及系統級 Tesseract:
import pytesseract
from pdf2image import convert_from_path
images = convert_from_path("scanned.pdf")
text = ""
for i, image in enumerate(images):
text += f"Page {i+1}:\n"
text += pytesseract.image_to_string(image)
text += "\n\n"
命令行快速處理¶
Skill 也收錄了常用 CLI,適合 Agent 直接調用 shell:
# 提取文本(保留版式)
pdftotext -layout input.pdf output.txt
# 合併 PDF
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
# 解密
qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf
# 提取內嵌圖片
pdfimages -j input.pdf output_prefix
在 Cursor 或 Claude Code 中,你可以這樣發起任務:
用 pdf skill 把 reports/ 目錄下本月的 5 個 PDF 合併成一個文件,並從第二份裏提取所有表格保存爲 Excel。
Agent 加載 Skill 後會選擇合適庫、安裝缺失依賴並執行腳本。
適用場景與注意事項¶
適合誰、什麼場景:
- 需要在 AI 編程助手裏反覆做 PDF 批處理(合併歸檔、批量提取、格式轉換)的開發者
- 做辦公自動化、RPA 原型,希望 Agent 按固定流程選庫而不是每次從零搜索文檔
- 已在 Claude Code 使用
document-skills插件,想在本機 Cursor/Codex 複用同一套 PDF 知識
注意事項:
- 許可:pdf Skill 爲 Anthropic 專有許可(Proprietary),商用或二次分發前請閱讀
LICENSE.txt。 - 環境依賴:OCR、表格提取、命令行工具需要額外安裝系統包(Tesseract、poppler-utils、qpdf 等),Agent 執行前需確認環境。
- 掃描件質量:OCR 準確率取決於掃描分辨率與語言包,複雜版式可能仍需人工校對。
- 表單複雜度:交互式表單、XFA 表單等邊緣情況以
forms.md爲準,不宜假設所有 PDF 都能一鍵填寫。 - 演示性質:官方 README 提醒,倉庫中的 Skill 主要用於演示與教育,生產環境應充分測試後再用於關鍵任務。
小結¶
pdf Skill 把 PDF 常見操作——讀、拆、合、轉、填、加密、OCR——整理成 Agent 可遵循的分步指南,並標註了 Python 庫與 CLI 的選型。對經常和 PDF 打交道的開發者來說,裝一次 Skill,後續用自然語言描述需求即可,不必每次重新查 pypdf 或 poppler 的用法。
官方倉庫地址:https://github.com/anthropics/skills/tree/main/skills/pdf