Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

pdf-generator

PDFファイルをプログラムで生成・操作するスキルです。PDFの新規作成、フォームへの入力、テキストや画像の抽出、透かし・オーバーレイの追加、複数ドキュメントの結合など、幅広い用途に対応します。テンプレートを使ったフォーム入力から白紙からのレポート生成まで、さまざまなPDF処理が必要な場面で活用できます。

description の原文を見る

Create and manipulate PDF files programmatically. Use when the user needs to generate PDFs, fill PDF forms, extract PDF content, add watermarks/overlays, or merge documents. Supports both template-based generation (form filling, overlays) and from-scratch creation. Keywords: PDF, document, form, fillable, merge, watermark, extract, text, report.

SKILL.md 本文

PDF ジェネレータ

このスキルを使う場合

このスキルは以下の場合に使用してください:

  • データや仕様からプログラムで PDF ドキュメントを作成
  • PDF フォームに動的データを入力
  • 既存の PDF に透かし、スタンプ、またはオーバーレイを追加
  • PDF ファイルからテキストとメタデータを抽出
  • 複数の PDF を 1 つのドキュメントにマージ
  • PDF 構造とフォーム フィールドを分析

このスキルを使わない場合:

  • ユーザーが PDF を開く/表示したい場合 (ネイティブ PDF ビューアを使用)
  • テキストフローを伴う複雑なページレイアウトが必要な場合 (HTML-to-PDF ツール を検討)
  • パスワード保護された PDF を操作する場合 (サポートが限定的)
  • スキャンされたドキュメントに対して OCR が必要な場合

前提条件

  • Deno がインストール済み (https://deno.land/)
  • テンプレートベースの操作用の入力 PDF ファイル
  • ゼロから生成する場合の JSON 仕様

クイックスタート

2 つの動作モード

  1. テンプレート モード: 既存の PDF テンプレートを変更

    • フォーム フィールドを入力 (テキスト、チェックボックス、ドロップダウン)
    • オーバーレイを追加 (テキスト、画像、図形)
    • PDF をマージして結合
  2. ゼロから作成 モード: JSON 仕様を使用して何もない状態から PDF を作成

手順

モード 1: テンプレートベースの生成

ステップ 1a: テンプレートを分析

既存の PDF からフォーム フィールドと構造を抽出:

deno run --allow-read scripts/analyze-template.ts form-template.pdf > inventory.json

出力 (inventory.json):

{
  "filename": "form-template.pdf",
  "pageCount": 2,
  "title": "Application Form",
  "author": "Company Inc",
  "pages": [
    { "pageNumber": 1, "width": 612, "height": 792, "text": "..." }
  ],
  "formFields": [
    { "name": "FullName", "type": "text", "value": "" },
    { "name": "Email", "type": "text", "value": "" },
    { "name": "AgreeToTerms", "type": "checkbox", "value": false }
  ],
  "placeholders": [
    { "tag": "{{DATE}}", "location": "page 1", "pageNumber": 1 }
  ],
  "hasFormFields": true
}

ステップ 1b: 入力仕様を作成

form-data.json を作成:

{
  "formFields": [
    { "name": "FullName", "value": "John Smith" },
    { "name": "Email", "value": "john@example.com" },
    { "name": "AgreeToTerms", "value": true }
  ],
  "flattenForm": true
}

ステップ 1c: 入力済み PDF を生成

deno run --allow-read --allow-write scripts/generate-from-template.ts \
  form-template.pdf form-data.json filled-form.pdf

オーバーレイを追加 (透かし、スタンプ)

watermark-spec.json を作成:

{
  "overlays": [
    {
      "type": "text",
      "page": 1,
      "x": 200,
      "y": 400,
      "text": "CONFIDENTIAL",
      "fontSize": 48,
      "color": { "r": 1, "g": 0, "b": 0 },
      "rotate": 45
    },
    {
      "type": "image",
      "page": 1,
      "x": 450,
      "y": 700,
      "path": "logo.png",
      "width": 100,
      "height": 50
    }
  ]
}

PDF をマージ

merge-spec.json を作成:

{
  "prependPdfs": [
    { "path": "cover-page.pdf" }
  ],
  "appendPdfs": [
    { "path": "appendix-a.pdf", "pages": [1, 2, 3] },
    { "path": "appendix-b.pdf" }
  ],
  "excludePages": [5, 6]
}

モード 2: ゼロからの生成

ステップ 2a: 仕様を作成

spec.json を作成:

{
  "title": "Quarterly Report",
  "author": "Finance Team",
  "pages": [
    {
      "size": "A4",
      "elements": [
        {
          "type": "text",
          "x": 50,
          "y": 750,
          "text": "Q4 2024 Financial Report",
          "fontSize": 28,
          "font": "HelveticaBold",
          "color": { "r": 0, "g": 0, "b": 0.5 }
        },
        {
          "type": "line",
          "startX": 50,
          "startY": 740,
          "endX": 550,
          "endY": 740,
          "thickness": 2
        },
        {
          "type": "text",
          "x": 50,
          "y": 700,
          "text": "Executive Summary",
          "fontSize": 18,
          "font": "HelveticaBold"
        },
        {
          "type": "text",
          "x": 50,
          "y": 670,
          "text": "This quarter showed strong growth across all divisions...",
          "fontSize": 12,
          "maxWidth": 500,
          "lineHeight": 16
        }
      ]
    }
  ]
}

ステップ 2b: PDF を生成

deno run --allow-read --allow-write scripts/generate-scratch.ts spec.json output.pdf

例 1: 申請フォームに記入

シナリオ: 職務経歴書申請フォームに自動入力

# 1. フォームを分析してフィールド名を検出
deno run --allow-read scripts/analyze-template.ts application.pdf --pretty

# 2. 応募者情報を含む form-data.json を作成
# 3. 記入済みフォームを生成
deno run --allow-read --allow-write scripts/generate-from-template.ts \
  application.pdf form-data.json john-smith-application.pdf

例 2: 承認スタンプを追加

シナリオ: ドキュメントに「APPROVED」スタンプを追加

stamp-spec.json:

{
  "overlays": [
    {
      "type": "rectangle",
      "page": 1,
      "x": 400,
      "y": 700,
      "width": 150,
      "height": 50,
      "color": { "r": 0.9, "g": 1, "b": 0.9 }
    },
    {
      "type": "text",
      "page": 1,
      "x": 410,
      "y": 720,
      "text": "APPROVED",
      "fontSize": 20,
      "font": "HelveticaBold",
      "color": { "r": 0, "g": 0.5, "b": 0 }
    },
    {
      "type": "text",
      "page": 1,
      "x": 410,
      "y": 705,
      "text": "2024-12-15",
      "fontSize": 10
    }
  ]
}

例 3: テーブル付きレポートを作成

シナリオ: データ テーブル付きの単純なレポートを生成

report-spec.json:

{
  "title": "Sales Report",
  "pages": [{
    "size": "Letter",
    "elements": [
      {
        "type": "text",
        "x": 72,
        "y": 720,
        "text": "Monthly Sales Report",
        "fontSize": 24,
        "font": "HelveticaBold"
      },
      {
        "type": "table",
        "x": 72,
        "y": 680,
        "rows": [
          ["Product", "Units", "Revenue"],
          ["Widget A", "150", "$15,000"],
          ["Widget B", "75", "$11,250"],
          ["Widget C", "200", "$8,000"]
        ],
        "columnWidths": [150, 80, 100],
        "rowHeight": 25,
        "headerBackground": { "r": 0.9, "g": 0.9, "b": 0.9 }
      }
    ]
  }]
}

スクリプト リファレンス

スクリプト目的権限
analyze-template.tsPDF からテキスト、メタデータ、フォーム フィールドを抽出--allow-read
generate-from-template.tsフォームに記入、オーバーレイを追加、PDF をマージ--allow-read --allow-write
generate-scratch.tsJSON 仕様から PDF を作成--allow-read --allow-write

要素タイプ (ゼロから作成モード)

タイプ説明キー オプション
textテキスト内容x, y, text, fontSize, font, color, rotate
imagePNG/JPEG 画像x, y, path, width, height, opacity
rectangle塗りつぶされた/枠線付きの長方形x, y, width, height, color, borderColor
line直線startX, startY, endX, endY, thickness
circle塗りつぶされた/枠線付きの円x, y, radius, color, borderColor
table基本的なテーブル レイアウトx, y, rows, columnWidths, rowHeight

使用可能なフォント

  • Helvetica (デフォルト)
  • HelveticaBold
  • HelveticaOblique
  • TimesRoman
  • TimesBold
  • Courier
  • CourierBold

ページ サイズ

  • A4 (595.28 x 841.89 ポイント)
  • Letter (612 x 792 ポイント)
  • Legal (612 x 1008 ポイント)
  • カスタム: [width, height] (ポイント単位)

よくある問題と解決方法

問題: フォーム フィールドが見つからない

症状: フィールド名が存在しないというエラーが表示される

解決方法:

  1. analyze-template.ts を実行して正確なフィールド名を確認
  2. フィールド名は大文字と小文字を区別
  3. フォーム フィールドに見えるが、記入不可のテキストもある PDF がある

問題: テキスト位置がずれている

症状: テキストが間違った位置に表示される

解決方法:

  • PDF 座標は左下 (0,0) から開始
  • Y は上向きに、X は右向きに増加
  • analyze-template.ts を使用してページ寸法を確認

問題: 画像が表示されない

症状: 画像オーバーレイが表示されない

解決方法:

  1. ファイル パスが spec.json の場所から相対的であることを確認
  2. 画像が PNG または JPEG 形式であることを確認
  3. 座標がページ範囲内であることを確認

問題: マージされた PDF のページ順序が間違っている

症状: ページが予期しない順序で表示される

解決方法:

  • prependPdfs はテンプレートの前にページを追加
  • appendPdfs はテンプレートの後にページを追加
  • pages 配列を使用して特定のページを選択: [1, 3, 5]

制限事項

  • 組み込みテーブル レイアウトなし: テーブルは手動で列幅を指定する必要があります
  • 標準フォントのみ: ゼロから作成モードではカスタム フォント埋め込みはサポートされていません
  • テキストの自動折り返しなし: テキストは自動的に次のページに折り返されません
  • 限定的なフォーム フィールド作成: 既存のフォームを記入できますが、新しいフィールドは作成できません
  • 暗号化なし: パスワード保護された PDF を作成できません
  • 基本的なグラフィックス: グラデーション、パターン、または複雑なパスはありません
  • テキスト抽出: すべての PDF で完璧に機能しない場合があります (PDF 構造に依存)

関連スキル

  • pptx-generator: PowerPoint プレゼンテーション作成用
  • docx-generator: Word ドキュメント作成用
  • xlsx-generator: Excel スプレッドシート作成用

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
jwynia
リポジトリ
jwynia/agent-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/jwynia/agent-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: jwynia · jwynia/agent-skills · ライセンス: MIT