ワークフロー&基本ツール · anthropics/skills

pdf

ユーザーがPDFファイルに対して何らかの操作を行いたい場合に、いつでもこのスキルを使用します。これには、PDFからのテキストや表の読み取り・抽出、複数のPDFの結合・マージ、PDFの分割、ページの回転、透かし(ウォーターマーク)の追加、新しいPDFの作成、PDFフォームへの入力、PDFの暗号化・復号、画像の抽出、スキャンしたPDFに対するOCR処理による検索可能化が含まれます。ユーザーが.pdfファイルについて言及したり、PDFの生成を求めたりした場合は、このスキルを使用してください。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ファイル書き込みDual-pass Audit
Author anthropicsGitHub anthropics/skills ↗Stars 175386License Proprietary(skill 自带 LICENSE.txt:© 2025 Anthropic, PBC. All rights reserved. 按 Anthropic Consumer/Commercial Terms of Service 授权并附 ADDITIONAL RESTRICTIONS;非开源许可)Commit 41bbe19d1a
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

ドキュメントの階層別ルーティング:SKILL.mdには頻出レシピと「次のステップ」へのポインタのみを記載し、高度なライブラリ/JSの使用法はREFERENCE.md、フォーム入力の完全なワークフローはFORMS.mdに配置し、3つのドキュメントを用途に応じて役割分担しています。

skills/pdf/SKILL.md
For advanced features, JavaScript libraries, and detailed examples, see REFERENCE.md. If you need to fill out a PDF form, read FORMS.md and follow its instructions.
SKILL.mdは「Quick Reference」表+レシピコードブロック(pypdfによる結合/分割/回転/透かし/暗号化、pdfplumberによる抽出、reportlabによる生成、poppler/qpdf CLI)で構成され、FORMS.mdが「フォーム入力」などの複雑なタスクに対応する完全なワークフローとなっています。

標準的なPDF操作はPythonライブラリ+CLIのデュアルトラック方式を採用し、すべてローカルで実行:pypdf(構造操作)、pdfplumber(テキスト/表)、reportlab(新規作成)、pdftotext/qpdf/pdftk/pdfimages(CLIショートカット)。

skills/pdf/SKILL.md
This guide covers essential PDF processing operations using Python libraries and command-line tools.
レシピには落とし穴の回避策が含まれています:「ReportLabで作成するPDFではUnicodeの下付き・上付き文字(₀₁₂₃₄₅₆₇₈₉…)を絶対に使用しないこと」— 組み込みフォントにこれらのグリフがないと黒い四角としてレンダリングされるため、<sub>/<super>タグで代替します。

フォーム入力は重要な機能であり、2つの形態を区別:入力可能フォーム(fillable、フィールドに直接書き込み)と入力不可フォーム(フィールドなし → FreeTextテキスト注釈を重畳)。後者は「構造抽出による座標取得」を優先し、失敗した場合のみ目視による見積もりにフォールバックします。

skills/pdf/forms.md
If the PDF doesn't have fillable form fields, you'll add text annotations. First try to extract coordinates from the PDF structure (more accurate), then fall back to visual estimation if needed.
構造的アプローチ=extract_form_structure.py(pdfplumberでテキスト座標、罫線、小さな矩形チェックボックスを読み取り、labels/lines/checkboxes/row_boundariesのJSONを出力);目視アプローチ=画像化後の手動/視覚的位置合わせ+スケーリングによる微調整。

入力前の必須チェックゲート:check_bounding_boxes.pyで交差するバウンディングボックスや極小の入力枠を検証;入力後は画像化による目視確認を強制し、座標変換エラーを成果物納品前に検出します。

skills/pdf/forms.md
**Always validate bounding boxes before filling:**
原文の検証項目:「Intersecting bounding boxes (which would cause overlapping text)」+「Entry boxes that are too small for the specified font size」;Step 4でconvert_pdf_to_images.pyを用いて画像を出力し、人間による検証を行います。

自己完結した座標系の変換:forms.mdでPDF座標系(ページ上部y=0から下方向に増加)を規定し、fields.jsonにpdf_width/pdf_heightまたは画像サイズ情報を保持。入力スクリプトが座標系を自動検出して変換します。

skills/pdf/forms.md
The fill script auto-detects the coordinate system and handles conversion:
fill_pdf_form_with_annotations.pyのソースコードにはtransform_from_image_coords(bounding box…)座標変換関数が含まれ、pypdfのFreeText注釈でテキストを重畳;fill_fillable_fields.pyはpypdfによるフィールド書き込みを実行します。

スキャンデータのOCRと「検索可能化」はテキスト抽出レイヤーのみをカバー:サンプルではpdf2image → pytesseractを経由して各ページのOCRテキストを連結して出力しますが、透明テキスト層を含むPDFを直接生成するスクリプトは提供されていません。

skills/pdf/SKILL.md
Requires: pip install pytesseract pdf2image
descriptionの「OCR on scanned PDFs to make them searchable」との表現の差異:本文ではテキストの抽出と表示のみを実演しており、「検索可能なPDFの作成」(テキスト層やインデックスの書き戻し)にはホスト側でツールの組み合わせが必要です(verificationの該当不一致項目を参照)。

2コア機能

01PDFの結合/分割/回転/ページ番号・透かし追加/暗号化・復号(pypdfレシピ)
02テキストおよび表の抽出(pdfplumber、レイアウト保持および複数ページにまたがる表の連結に対応)
03ゼロからのPDF生成(reportlab Canvas/Platypus、下付き・上付きグリフの描画バグ回避策を含む)
04CLI一括操作:pdftotext -layout、qpdfによる結合・分割、pdftk、pdfimagesによる画像抽出
05フォーム入力の完全なワークフロー:構造抽出 → fields.json → 枠検証 → 入力(フィールド/注釈の2手法) → 画像化による目視確認
06スキャンデータのOCRテキスト抽出(pdf2image + pytesseract)
07高度なリファレンス:pypdfium2によるレンダリング、pdf-lib(JS)による複雑な生成、pdfjs-distによる座標/注釈抽出

3外部依存関係

KindDependency / Endpoint
packagepypdf(读写/合并/旋转/加密/字段)
packagepdfplumber(文本/表格坐标级抽取)
packagereportlab(创建 PDF)
clipdftotext(poppler-utils)
cliqpdf(合并/拆分/旋转/修复/加密)
clipdftk(若可用)与 pdfimages(poppler,抽图)
packagepytesseract + pdf2image(OCR,按需安装)
packagepypdfium2 / pdf-lib(JS) / pdfjs-dist(JS)(高级参考章节)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: 8つの内蔵Pythonスクリプト(pypdf/pdfplumber/PIL/pdf2image)
  • 本地工作目录: ファイル読み書きおよび成果物出力: PDF、fields.json、form_structure.json、画像を出力(ローカルワークスペース内)
監査ノート: 完全なローカル実行動作:内蔵Pythonスクリプト+poppler/qpdf系ローカルCLIを使用してローカルPDFを読み書きし、外部ネットワークへの送信やクレデンシャルの読み取りは行いません。留意事項:① 信頼できないPDFを解析する際のリスクはpypdf/pdfplumberのパーサー層に存在します(ホスト環境でバージョンの評価が必要);② descriptionでは「OCR … make them searchable」と謳われていますが、本文の実装はテキスト抽出のみをカバーしており、検索可能PDFの生成にはホスト側でツールの補完が必要です;③ OCRライブラリは必要に応じてpipインストールされます(公式PyPI、条件付きトリガー)。全体としてローカル文書処理スキルであり、外部通信リスクはありません。

5二重目の独立検証

  • [ok] 填表工作流引用脚本全部存在 — forms.md 各步骤命令行(extract_form_structure/check_bounding_boxes/fill_pdf_form_with_annotations/convert_pdf_to_images/check_fillable_fields)与 scripts/ 文件一一对应。
  • [discrepancy] OCR『make them searchable』宣称 vs 实现 — description 声称 OCR 使扫描件可搜索,但 SKILL.md 'Extract Text from Scanned PDFs' 示例只把 pytesseract 文本拼进字符串打印/汇总;生成带文本层的可搜索 PDF 没有脚本或配方,需宿主自行组合。属轻微措辞超前(抽取是搜索化的前置),已在 risks 标注。
  • [ok] 库依赖与 import 一致 — 脚本实际 import pypdf/pdfplumber/PIL/pdf2image,与依赖清单一致;无隐藏第三方。
  • [ok] 网络/凭证零命中 — token 扫描(url/requests/urllib/env/token/secret/key)零命中;无配置文件读取。
  • [ok] 坐标转换逻辑存在 — fill_pdf_form_with_annotations.py 有 transform_from_image_coords 函数,forms.md 双坐标系说明与之配套。
  • [ok] 元数据与资产核对 — 本地 HEAD==pin;LICENSE.txt 专有条款与 frontmatter 'Proprietary' 一致;REFERENCE.md/forms.md 行数与结构如述。

6結論

  • 幅広いタスクをカバー:構造操作/抽出/生成/CLI一括処理/フォーム入力/OCRのすべてに実行可能なパスがあり、Quick Referenceの早見表も完備。
  • フォーム入力は単なるテキストの重ね書きではなく、座標エンジニアリングに基づいた真の完結型ワークフロー(構造抽出 → 検証 → 入力 → 目視確認)。
  • ローカル環境でオフライン動作可能:純粋なPython+poppler CLIで構成され、外部ネットワークに依存しないため、機密文書を扱う環境に適しています。
  • 階層化されたドキュメント構成(SKILL/REFERENCE/FORMS)により、メインドキュメントの肥大化を防ぎつつ、高度なタスクには専用マニュアルを提供。
  • レンダラー固有の落とし穴に関するナレッジ(Unicode下付き文字の黒四角化、座標の向きなど)を内蔵し、手戻りを防止。
  • 最適な用途: 契約書や帳票の結合・分割、表データの抽出、スキャン文書のOCR、さらには最も難易度の高い「フィールドのないフォームへの正確なテキスト入力」(完全なワークフローあり)など、PDFの一括処理やプログラムによる自動処理が必要な環境に最適です。3つのドキュメント階層構造は、簡易なタスクから高度なカスタマイズまで段階的に利用するのにも適しています。
    不向きな用途: 極めて高精度なビジュアルレイアウトが求められ、WYSIWYGエディタを必要とするデザイン重視のPDF作成には適していません。ホスト側に補完ツールがない状態で「OCR実行後に検索可能なPDFが直接生成される」ことを期待するケースには適していません。popplerやqpdfが存在せず、インストールもできない制約環境には適していません。プロプライエタリなライセンス条項を受け入れられない組織には適していません。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload pdf.tar.gz
    sha256: 8a9ce019ed1b048d…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 41bbe19d1a.