Anthropic pdf Skill:讓 AI 編程助手真正搞定 PDF 全場景處理

前言

做開發或運維,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

幾個值得注意的官方細節:

  1. ReportLab 上下標:不要用 Unicode 上下標字符(如 H₂O),內置字體會顯示黑塊;應使用 <sub><super> 標籤。
  2. 表單填寫:Skill 明確要求先讀 forms.md,不要憑猜測填字段。
  3. 漸進式加載:主文件只放常用操作,複雜場景按需讀 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

需先安裝依賴 pytesseractpdf2image,以及系統級 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 知識

注意事項:

  1. 許可:pdf Skill 爲 Anthropic 專有許可(Proprietary),商用或二次分發前請閱讀 LICENSE.txt
  2. 環境依賴:OCR、表格提取、命令行工具需要額外安裝系統包(Tesseract、poppler-utils、qpdf 等),Agent 執行前需確認環境。
  3. 掃描件質量:OCR 準確率取決於掃描分辨率與語言包,複雜版式可能仍需人工校對。
  4. 表單複雜度:交互式表單、XFA 表單等邊緣情況以 forms.md 爲準,不宜假設所有 PDF 都能一鍵填寫。
  5. 演示性質:官方 README 提醒,倉庫中的 Skill 主要用於演示與教育,生產環境應充分測試後再用於關鍵任務。

小結

pdf Skill 把 PDF 常見操作——讀、拆、合、轉、填、加密、OCR——整理成 Agent 可遵循的分步指南,並標註了 Python 庫與 CLI 的選型。對經常和 PDF 打交道的開發者來說,裝一次 Skill,後續用自然語言描述需求即可,不必每次重新查 pypdf 或 poppler 的用法。

官方倉庫地址:https://github.com/anthropics/skills/tree/main/skills/pdf

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜