mcpField
P
pdf-pro

pdf-pro

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

pdf-pro について

PDF Proは、JavaScript中心のPDF作成、抽出、編集を扱うスキルです。ブラウザー描画やAIによる抽出、PDFユーティリティを使った文書処理の方法をまとめています。

主な機能

  1. 01AIによるテキストとレイアウトの抽出
  2. 02PuppeteerまたはPlaywrightでのHTMLからPDF生成
  3. 03PDFの結合、分割、フォーム入力
  4. 04暗号化とアクセシブルなPDFのガイダンス

活用シーン

  1. 01請求書から構造化データを抽出
  2. 02ReactテンプレートからPDFを生成
  3. 03既存PDFファイルの編集や暗号化

インストール

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

$npx skills add https://github.com/yuniorglez/gemini-elite-core --skill pdf-pro

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

同梱ファイル

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

forms.md
LICENSE.txt
PDF-PROCESSING.md
reference.md
references/
1-ai-extraction-patterns.md
2-high-fidelity-generation.md
3-legacy-python-utilities.md
scripts/
check_bounding_boxes_test.py
check_bounding_boxes.py
check_fillable_fields.py
convert_pdf_to_images.py
create_validation_image.py
extract_form_field_info.py
fill_fillable_fields.py
fill_pdf_form_with_annotations.py

詳細

スキル:PDF Pro(Standard 2026)

役割: PDF Pro は、ドキュメントエンジニアリングのライフサイクル全体を担う専門エージェントです。AI モデルを使用した「セマンティック抽出」、ヘッドレスブラウザーを使った「高忠実度生成」、低レベルのバイト操作による「フォレンジックな変更」が含まれます。2026 年、Squaads AI Core は、Next.js 16.2 とシームレスに統合できる Bun ネイティブかつ JavaScript ファーストのソリューションを優先します。

🎯 主な目標

  1. セマンティック抽出: 生のテキストを扱うだけでなく、LLM による OCR とレイアウト分析を活用して、構造化された JSON を生成します。
  2. 高忠実度生成: Puppeteer/Playwright を使用し、CSS の印刷サポートを備えた、ピクセル単位で正確な HTML から PDF への変換を行います。
  3. PDF 2.0 準拠: AES-256 暗号化、UTF-8 メタデータ、アクセシブルな(タグ付き)PDF 構造を実装します。
  4. エッジ対応処理: サーバーレス環境やエッジ環境では、unpdf などの軽量ライブラリを使用します。

🏗️ 2026 年のツールセット

1. Bun ネイティブおよび JS ライブラリ(主な選択肢)
  • pdf-lib: バイトレベルの変更、結合、分割、フォーム入力に使用します。
  • unpdf: エッジ環境やサーバーレス環境での超軽量な抽出に使用します。
  • Puppeteer/Playwright: React テンプレートから PDF を生成するための業界標準です。
  • Mistral/OpenAI OCR: 複雑なレイアウトや手書き文字からセマンティック抽出を行います。
2. フォレンジックユーティリティ(レガシー/高度な用途)
  • qpdf: 構造の修復や復号を行う CLI ツールです。
  • poppler-utils: テキストや画像を高速に抽出する C 言語ベースのツールです。

🛠️ 実装パターン

1. 高忠実度生成(Next.js 16.2)

React コンポーネントから PDF を生成することで、Web アプリとの視覚的な一貫性を確保できます。

// app/api/generate-pdf/route.ts
import puppeteer from 'puppeteer';

export async function POST(req: Request) {
  const { htmlContent } = await req.json();
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  
  await page.setContent(htmlContent, { waitUntil: 'networkidle0' });
  const pdfBuffer = await page.pdf({
    format: 'A4',
    printBackground: true,
    margin: { top: '20px', bottom: '20px' }
  });

  await browser.close();
  return new Response(pdfBuffer, {
    headers: { 'Content-Type': 'application/pdf' }
  });
}
2. AI 主導のセマンティック抽出

LLM を使用して、構造化されていない PDF テキストを検証済みの Zod スキーマに変換します。

import { unpdf } from 'unpdf';
import { generateObject } from 'ai'; // AI SDK 2026

async function extractInvoice(buffer: Buffer) {
  const { text } = await unpdf.extractText(buffer);
  
  const { object } = await generateObject({
    model: myModel,
    schema: invoiceSchema,
    prompt: `Extract structured data from this PDF text: ${text}`
  });
  
  return object;
}

🔒 PDF 2.0 のセキュリティと整合性

AES-256 暗号化

PDF 2.0 では、脆弱なアルゴリズムは非推奨です。安全にロックするには、qpdf または最新の JS ラッパーを使用してください。

# Secure a PDF with 2026 standards
qpdf --encrypt user-pass owner-pass 256 -- input.pdf secured.pdf
デジタル署名(PAdES)

法的拘束力のある署名には、OIDC プロバイダーまたはハードウェアセキュリティモジュール(HSM)を統合します。


🚫 「使用しないもの」リスト(アンチパターン)

  1. 複雑なレイアウトの抽出に pypdf を絶対に使用しないでください。複数列やテキストの重なりがある場合、正常に動作しません。pdfplumber または AI OCR を使用してください。
  2. HTML/CSS テンプレートが使える場合は、canvas の描画コマンドで PDF を生成しないでください。メンテナンスが非常に困難になります。
  3. 個人識別情報(PII)を含む暗号化されていない PDF を、パブリック S3 バケットに保存しないでください。
  4. 自動化されたサーバーサイド生成で window.print() に依存しないでください。結果が一定しません。

🛠️ トラブルシューティングガイド

問題考えられる原因2026 年の適切な対処法
フォントが見つからないコンテナにシステムフォントがないGoogle Fonts または WOFF2 を埋め込んだ Puppeteer を使用します。
文字化けする複雑な CID エンコーディング-enc UTF-8 を指定した poppler、または AI OCR レイヤーを使用します。
ファイルサイズが大きすぎる高解像度の画像が最適化されていないghostscript または pdf-lib のスケーリングで圧縮処理を実行します。
フォーム入力に失敗するPDF フィールドがフラット化されている書き込み前に pdf-lib で AcroForm フィールドを調べます。

📚 リファレンスライブラリ


📜 標準作業手順書(SOP)

  1. 要件の確認: 目的は 作成、抽出、それとも 変更 ですか?
  2. ツールの選択:
    • 作成 -> Puppeteer。
    • 抽出 -> AI SDK + unpdf。
    • 変更 -> pdf-lib。
  3. 環境の確認: エッジ関数で実行されていますか?(はいの場合は、Puppeteer を避けてください。)
  4. 実装: 厳密な TypeScript の型付けで構築します。
  5. 監査: PDF 2.0 のメタデータとアクセシビリティ(A11y)タグを検証します。

📈 品質指標

  • 抽出精度: 98% 超(正解の JSON と照合して測定)。
  • 生成速度: 10 ページのドキュメントで 2 秒未満。
  • セキュリティ監査: 脆弱な暗号化アルゴリズムはゼロ(qpdf で検証)。

🔄 最終リファクタリングの詳細

  • 実施者: Gemini Elite Conductor
  • 日付: 2026 年 1 月 22 日
  • バージョン: 1.1.0(2026 Standard)
  • 重点: Python 中心から、JS 中心の AI 統合型ドキュメントエンジニアリングへの移行。

PDF Pro Standard(v1.1.0)の終わり

コメント