mcpField
P
pdf-tools

pdf-tools

github.com/oakossドキュメント20173 回インストール10 週間前に更新
リポジトリ

pdf-tools について

抽出、生成、編集、フォーム処理、文書セキュリティを扱う、開発者向けの PDF エンジニアリングスキルです。JavaScript を中心とするライブラリに加え、用途に応じた Python やコマンドラインツールを案内します。

主な機能

  1. 01PDF のテキストと表の抽出
  2. 02HTML からの PDF 生成
  3. 03PDF の編集・結合・分割
  4. 04インタラクティブ・静的フォームへの入力
  5. 05PDF の暗号化・修復・墨消し
  6. 06署名とアーカイブ適合性の確認

活用シーン

  1. 01複雑な PDF から構造化データを抽出
  2. 02HTML や React から PDF を生成
  3. 03フォーム入力と既存文書の編集
  4. 04安全な保管やアーカイブ向けの PDF 準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill pdf-tools

インストール後、Claude Code で/pdf-toolsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ai-extraction-patterns.md
batch-and-accessibility.md
form-filling.md
high-fidelity-generation.md
legacy-utilities.md

詳細

PDF ツール

抽出、生成、変更、フォーム入力、セキュリティに対応する、PDF エンジニアリングの全ライフサイクルをカバーします。JavaScript を優先したソリューション(pdf-lib、unpdf、Puppeteer)を中心に、より高度なシナリオ向けの Python/CLI ユーティリティも扱います。

使用する場面:PDF から構造化データを抽出する、HTML/React からピクセル単位で正確な PDF を生成する、既存の PDF を変更する、入力可能または入力不可のフォームに入力する、暗号化で文書を保護する場合。

使用しない場面:単純なテキストファイルの処理、PDF とは無関係な画像のみの操作、またはワープロソフトでの処理が適しているタスク。

クイックリファレンス

タスクツールポイント
HTML から PDF を生成するPuppeteer / Playwrightpage.pdf() を使用します。Puppeteer では networkidle0、Playwright では networkidle を使用します
テキストを抽出する(軽量)unpdfエッジ/サーバーレス環境に対応
表を抽出する(AI)Vision model + Zod schema複数列や結合セルに対応
表を抽出する(非 AI)pdfplumber (Python)セル境界を正確に検出
変更、結合、分割pdf-lib (or @pdfme/pdf-lib)JS でバイトレベルの PDF 操作
入力可能なフォームに入力pdf-lib (or @pdfme/pdf-lib)書き込み前に AcroForm フィールドを確認
入力不可のフォームに入力Python annotation scripts視覚的な分析とバウンディングボックス注釈
PDF を暗号化するqpdfAES-256:qpdf --encrypt user owner 256 --
破損した PDF を修復するqpdfqpdf input.pdf --replace-input
高速なテキスト抽出(CLI)poppler-utilspdftotext -layout input.pdf -
数千のファイルを結合するpypdf (Python)ヘッドレスブラウザーより軽量
バッチキュー処理BullMQ + unpdfRedis ベースで、再試行、並行処理、進捗追跡に対応
PDF/A アーカイブ準拠ghostscript + verapdf変換には gs -dPDFA=2、検証には verapdf を使用
タグ付き PDF(アクセシビリティ)Puppeteertagged: true により、HTML のセマンティクスが PDF の構造タグに対応します
デジタル署名@signpdf/*P12 証明書による PKCS#7 署名
PDF の比較unpdf + diff / pixelmatchバージョン間のテキスト差分またはピクセルレベルの視覚的差分
安全な墨消しpymupdf (fitz)apply_redactions() は視覚的なオーバーレイだけでなく、コンテンツのバイト列を削除します

よくある間違い

間違い正しい方法
PDF 生成にキャンバス描画コマンドを使うHTML/CSS テンプレートと Puppeteer/Playwright を使います
エッジ/サーバーレス環境で Puppeteer を実行するエッジでは unpdf を使います。Puppeteer には完全な Node.js 環境が必要です
基本的なテキストパーサーで複雑なレイアウトを抽出する複数列のテキストには、AI 支援 OCR または pdfplumber を使います
PII を含む暗号化されていない PDF をパブリックストレージに保存する保存前に qpdf を使って AES-256 暗号化を適用します
サーバーサイド生成で window.print() に頼る決定的な出力にはヘッドレスブラウザー API(page.pdf())を使います
複雑なレイアウトの抽出に pypdf を使う複数列または重なり合うテキストには pdfplumber または AI OCR を使います
コンテナ化環境でフォントの埋め込みを省略するPuppeteer で Google Fonts または WOFF2 ファイルを埋め込みます
フラット化された PDF フォームフィールドに書き込む書き込む前に pdf-lib で AcroForm フィールドを調べます
暗号化された PDF に保守されていない pdf-lib を使う暗号化 PDF のサポートを追加したフォーク @cantoo/pdf-lib を使います

委任

  • PDF の構造を調べ、抽出の問題を診断する:Explore エージェントを使って、AcroForm フィールド、エンコーディング、メタデータを調べます
  • エンドツーエンドのドキュメント処理パイプラインを構築する:Task エージェントを使って、抽出、変換、生成のワークフローを実装します
  • 新しいシステムの PDF アーキテクチャを設計する:Plan エージェントを使ってツールを選び、抽出、生成、変更の方針を計画します

参考資料

  • AI 抽出パターン -- ビジョンベースの表抽出、再帰的な要約、複数パスによる検証
  • 高忠実度な生成 -- Puppeteer による HTML から PDF への変換、CSS 印刷のヒント、React テンプレート、ブラウザープーリング
  • レガシーユーティリティ -- バッチ処理やフォレンジック作業向けの pdfplumber、pypdf、qpdf、poppler-utils
  • フォーム入力 -- 入力可能なフィールドの抽出、入力不可の注釈のワークフロー、検証スクリプト
  • バッチ処理とアクセシビリティ -- キューベースのバッチ処理、PDF/A 準拠、タグ付き PDF、デジタル署名、比較、墨消し

コメント