mcpField
P
pptx

pptx

github.com/agentscope-aiドキュメント36.9k68 回インストール今日更新
リポジトリ

pptx について

PPTX形式のプレゼンテーションを読み取り、編集、作成するスキルです。内容抽出、テンプレート編集、スライド作成に加え、内容と表示の品質確認を扱います。

主な機能

  1. 01テキスト抽出とサムネイル生成
  2. 02テンプレートを使ったプレゼン編集
  3. 03pptxgenjsによるスライド作成
  4. 04プレゼンをPDFや画像に変換
  5. 05内容とレイアウトの確認

活用シーン

  1. 01プレゼンテーションからテキストを抽出
  2. 02サムネイルでスライド構成を確認
  3. 03プレゼンテーションを一から作成
  4. 04レンダリング後の資料を点検して修正

インストール

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

$npx skills add https://github.com/agentscope-ai/qwenpaw --skill pptx

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

同梱ファイル

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

editing.md
LICENSE.txt
pptxgenjs.md
scripts/
__init__.py
add_slide.py
clean.py
scripts/office/
pack.py
scripts/office/helpers/
__init__.py
merge_runs.py
simplify_redlines.py
scripts/office/schemas/ecma/fouth-edition/
opc-contentTypes.xsd
opc-coreProperties.xsd
opc-digSig.xsd
opc-relationships.xsd
scripts/office/schemas/ISO-IEC29500-4_2016/
dml-chart.xsd
dml-chartDrawing.xsd
dml-diagram.xsd
dml-lockedCanvas.xsd
dml-main.xsd
dml-picture.xsd
dml-spreadsheetDrawing.xsd
dml-wordprocessingDrawing.xsd
pml.xsd
shared-additionalCharacteristics.xsd
shared-bibliography.xsd
shared-commonSimpleTypes.xsd
shared-customXmlDataProperties.xsd
shared-customXmlSchemaProperties.xsd
shared-documentPropertiesCustom.xsd
shared-documentPropertiesExtended.xsd

詳細

重要: scripts/ 内のパスはすべて、このスキルのディレクトリからの相対パスです。 次のように実行します: cd {this_skill_dir} && python scripts/... または、execute_shell_command の cwd パラメーターを使用します。

PPTX スキル

前提条件

  • markitdown[pptx]: プレゼンテーションからテキストを抽出します
  • Pillow: サムネイル一覧を生成します
  • pptxgenjs(npm install -g pptxgenjs): プレゼンテーションを一から作成します
  • LibreOffice(soffice): プレゼンテーションを PDF に変換します
  • pdftoppm(poppler-utils): サムネイル/ビジュアルのワークフロー用に PDF を画像に変換します
  • pdftoppm を利用できない場合、Python の代替手段として pdf2image を使用できます。
  • Windows では、依存関係をインストールし、PATH から利用できる状態にする必要があります。依存関係が不足している場合は、その問題を報告して停止してください(再試行を続けないでください)。

クイックリファレンス

タスクガイド
コンテンツを読み取る/分析するpython -m markitdown presentation.pptx
テンプレートから編集または作成するediting.md を読む
一から作成するpptxgenjs.md を読む

コンテンツの読み取り

# Text extraction
python -m markitdown presentation.pptx

# Visual overview
python scripts/thumbnail.py presentation.pptx

# Raw XML
python scripts/office/unpack.py presentation.pptx unpacked/

編集ワークフロー

詳細については editing.md を読んでください。

  1. thumbnail.py でテンプレートを分析する
  2. 展開 → スライドを操作 → コンテンツを編集 → クリーンアップ → パッケージ化

一から作成する

詳細については pptxgenjs.md を読んでください。

テンプレートや参考用のプレゼンテーションがない場合に使用します。


デザインのアイデア

退屈なスライドは作らないでください。 白い背景にシンプルな箇条書きを並べるだけでは、印象に残りません。各スライドに、次のリストからアイデアを取り入れてみましょう。

作成を始める前に
  • テーマに合わせた大胆なカラーパレットを選ぶ: パレットは、このトピックのためにデザインされたと感じられるものにしてください。まったく別のプレゼンテーションに色を差し替えても違和感なく使えるなら、選択が十分に具体的ではありません。
  • 均等さよりも主役となる色を: 1 色を視覚的な比重の 60〜70% にし、補助色を 1〜2 色、際立つアクセントカラーを 1 色使います。すべての色を同じ比重にしないでください。
  • 暗色と明色のコントラスト: タイトルとまとめのスライドには暗い背景、コンテンツには明るい背景を使います(「サンドイッチ」構成)。または、プレミアム感を出すため、全体を暗色で統一します。
  • ビジュアルのモチーフを決める: 特徴的な要素を 1 つ選んで繰り返し使います。たとえば、角丸の画像フレーム、色付きの円に入れたアイコン、片側だけの太い枠線などです。すべてのスライドで統一して使いましょう。
カラーパレット

トピックに合った色を選び、ありきたりな青をデフォルトにしないでください。次のパレットを参考にしてください。

テーマメインカラーセカンダリーカラーアクセントカラー
ミッドナイト・エグゼクティブ1E2761(ネイビー)CADCFC(アイスブルー)FFFFFF(白)
フォレスト&モス2C5F2D(フォレスト)97BC62(モス)F5F5F5(クリーム)
コーラル・エナジーF96167(コーラル)F9E795(ゴールド)2F3C7E(ネイビー)
ウォーム・テラコッタB85042(テラコッタ)E7E8D1(サンド)A7BEAE(セージ)
オーシャン・グラデーション065A82(ディープブルー)1C7293(ティール)21295C(ミッドナイト)
チャコール・ミニマル36454F(チャコール)F2F2F2(オフホワイト)212121(黒)
ティール・トラスト028090(ティール)00A896(シーフォーム)02C39A(ミント)
ベリー&クリーム6D2E46(ベリー)A26769(ダスティローズ)ECE2D0(クリーム)
セージ・カーム84B59F(セージ)69A297(ユーカリ)50808E(スレート)
チェリー・ボールド990011(チェリー)FCF6F5(オフホワイト)2F3C7E(ネイビー)
各スライドについて

すべてのスライドにビジュアル要素が必要です — 画像、グラフ、アイコン、図形などを入れましょう。テキストだけのスライドは印象に残りません。

レイアウトの選択肢:

  • 2カラム(左にテキスト、右にイラスト)
  • アイコン+テキストの行(色付きの円に入れたアイコン、太字の見出し、その下に説明)
  • 2x2または2x3のグリッド(片側に画像、もう片側にコンテンツブロックのグリッド)
  • ハーフブリード画像(左または右の全体に配置)にコンテンツを重ねる

データの表示:

  • 大きな数値のコールアウト(大きな数値を60-72ptで表示し、その下に小さなラベルを配置)
  • 比較カラム(変更前/変更後、メリット/デメリット、選択肢を並べて表示)
  • タイムラインまたはプロセスフロー(番号付きの手順、矢印)

ビジュアルの仕上げ:

  • セクション見出しの横に、小さな色付きの円に入れたアイコンを配置
  • 重要な数値やタグラインには、アクセントとしてイタリック体のテキストを使用
タイポグラフィ

印象的なフォントの組み合わせを選びましょう — 既定のArialを使わないでください。個性のある見出し用フォントを選び、読みやすい本文用フォントと組み合わせましょう。

見出し用フォント本文用フォント
GeorgiaCalibri
Arial BlackArial
CalibriCalibri Light
CambriaCalibri
Trebuchet MSCalibri
ImpactArial
PalatinoGaramond
ConsolasCalibri
要素サイズ
スライドタイトル36-44pt、太字
セクション見出し20-24pt、太字
本文テキスト14-16pt
キャプション10-12pt、控えめな色
余白
  • 最小マージンは0.5"
  • コンテンツブロック間は0.3-0.5"
  • 余白を取りましょう — すべてのスペースを埋めないでください
避けること(よくある間違い)
  • 同じレイアウトを繰り返さない — スライドごとにカラム、カード、コールアウトを変えましょう
  • 本文を中央揃えにしない — 段落やリストは左揃えにし、中央揃えにするのはタイトルだけにしましょう
  • サイズのコントラストを小さくしない — タイトルは36pt以上にして、14-16ptの本文との差を際立たせましょう
  • 青を既定の色にしない — 具体的なトピックに合った色を選びましょう
  • 余白を無作為に混在させない — 0.3"または0.5"の間隔を選び、一貫して使いましょう
  • 1枚だけ装飾して、残りをシンプルなままにしない — 全体を統一して仕上げるか、全体をシンプルに保ちましょう
  • テキストだけのスライドを作らない — 画像、アイコン、グラフ、その他のビジュアル要素を追加し、タイトルと箇条書きだけの構成は避けましょう
  • テキストボックスのパディングを忘れない — テキストの端に線や図形を揃える場合は、テキストボックスにmargin: 0を設定するか、パディングを考慮して図形の位置を調整しましょう
  • コントラストの低い要素を使わない — アイコンとテキストの両方で、背景に対して十分なコントラストを確保しましょう。明るい背景に明るいテキスト、暗い背景に暗いテキストを置かないでください
  • タイトルの下にアクセントラインを絶対に使わない — これはAI生成スライドにありがちな特徴です。代わりに余白や背景色を使いましょう

QA(必須)

問題があることを前提にしてください。問題を見つけるのがあなたの役目です。

最初のレンダリングが正しいことはほとんどありません。確認作業ではなく、バグ探しとしてQAに取り組みましょう。最初の確認で問題が1つも見つからなかったなら、十分に注意して見ていません。

コンテンツQA
python -m markitdown output.pptx

コンテンツの欠落、誤字、順序の誤りがないか確認します。

テンプレートを使う場合は、プレースホルダーテキストが残っていないか確認します:

python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"

grepで結果が返された場合は、問題ないと判断する前に修正してください。

ビジュアルQA

⚠️ サブエージェントを使用してください — 2〜3枚のスライドの場合も同様です。コードを見続けていると、実際にあるものではなく、あると思い込んだものを見てしまいます。サブエージェントなら新鮮な目で確認できます。

スライドを画像に変換し(画像への変換を参照)、次のプロンプトを使用します:

Visually inspect these slides. Assume there are issues — find them.

Look for:
- Overlapping elements (text through shapes, lines through words, stacked elements)
- Text overflow or cut off at edges/box boundaries
- Decorative lines positioned for single-line text but title wrapped to two lines
- Source citations or footers colliding with content above
- Elements too close (< 0.3" gaps) or cards/sections nearly touching
- Uneven gaps (large empty area in one place, cramped in another)
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text (e.g., light gray text on cream-colored background)
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
- Text boxes too narrow causing excessive wrapping
- Leftover placeholder content

For each slide, list issues or areas of concern, even if minor.

Read and analyze these images:
1. /path/to/slide-01.jpg (Expected: [brief description])
2. /path/to/slide-02.jpg (Expected: [brief description])

Report ALL issues found, including minor ones.
検証のループ
  1. スライドを生成 → 画像に変換 → 確認
  2. 見つかった問題を列挙する(見つからなかった場合は、さらに批判的な視点で確認する)
  3. 問題を修正する
  4. 影響を受けたスライドを再検証する — 1つの修正が別の問題を引き起こすことはよくあります
  5. 問題が新たに見つからない状態で全体を確認できるまで繰り返す

少なくとも1回は修正と検証のサイクルを完了するまで、成功と判断しないでください。


画像への変換

プレゼンテーションを個々のスライド画像に変換し、ビジュアルを確認します:

python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide

これにより、slide-01.jpg、slide-02.jpgなどが作成されます。

修正後に特定のスライドを再レンダリングするには:

pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed

コメント