チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

2026-11-10

PowerPoint を Markdown に変換する方法(全体・スライド単位)

PowerPoint の内容はスライドという「見える形」で保存されているため、そのままではメモ帳や Git の差分で確認しにくいのが実情です。Markdown に変換しておくと、テキストとして一覧できるほか、ナレッジベースや LLM への入力、ドキュメントのバージョン管理にもそのまま活用できます。

Spire.Presentation for Python には、PowerPoint を Markdown に変換する機能が用意されています。変換の方法は次の 3 種類です。

  1. プレゼンテーション全体を 1 つの Markdown ファイルに変換する
  2. 指定したスライドを 1 枚だけ Markdown ファイルに出力する
  3. 複数のスライドを順番に Markdown ファイルとして出力する

いずれも Microsoft PowerPoint のインストールは不要で、Python のコードだけで変換できます。

1. インストール

次の pip コマンドで Spire.Presentation for Python をインストールします。

pip install Spire.Presentation

2. サンプルファイル

ここでは、次の 3 スライドで構成される 報告資料.pptx を使います。

  • スライド 1:表題と報告者を記載した表紙
  • スライド 2:「ハイライト」という見出しと、3 つの実績項目
  • スライド 3:「地域別売上実績」という見出しと、5 行 4 列の表

スライド 3 の表は、Python で PowerPoint プレゼンテーションのテーブルを作成・編集する方法 と同じ手順で作成できます。

以降のセクションで、このサンプルを全体変換・スライド単位・複数枚連続の 3 つの方法で Markdown に変換します。

3. プレゼンテーション全体を Markdown に変換する

Presentation.SaveToFile() と FileFormat.Markdown を組み合わせると、プレゼンテーション全体を 1 つの Markdown ファイルに変換できます。手順は次のとおりです。

  1. Presentation オブジェクトを作成する
  2. Presentation.LoadFromFile() で PPT/PPTX ファイルを読み込む
  3. Presentation.SaveToFile() に出力先のパスと FileFormat.Markdown を指定して保存する
  4. Presentation.Dispose() でリソースを解放する
from spire.presentation import *
import os

# Presentation オブジェクトを作成する
presentation = Presentation()

# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")

# プレゼンテーション全体を Markdown ファイルとして保存する
presentation.SaveToFile("報告資料.md", FileFormat.Markdown)

# リソースを解放する
presentation.Dispose()

print("保存しました: 報告資料.md")
print("ファイルサイズ:", os.path.getsize("報告資料.md"), "bytes")

このスクリプトを実行すると、読み込んだファイルと同じ場所に 報告資料.md が保存されます。

プレゼンテーション全体の Markdown 変換結果

生成されたファイルの中身は次のようにテキストとして確認できます。

Markdown 変換を実行したときのコンソール出力

出力される Markdown には、次の特徴があります。

  • スライドの区切りに ==== Page 1 ==== のようなページマーカーが入る
  • スライド上のテキストが行として並ぶ
  • 太字を設定した文字は **…** で出力される
  • 表は | 区切りの Markdown 表として出力される

4. 指定したスライドを Markdown に変換する

1 枚だけ出力したいときは、Presentation.Slides[インデックス] で対象のスライドを取得し、ISlide.SaveToFile() で Markdown として保存します。手順は次のとおりです。

  1. Presentation オブジェクトを作成して Presentation.LoadFromFile() でファイルを読み込む
  2. Presentation.Slides[] で出力したいスライドを取得する
  3. ISlide.SaveToFile() に出力先のパスと FileFormat.Markdown を指定して保存する
  4. Presentation.Dispose() でリソースを解放する
from spire.presentation import *

# Presentation オブジェクトを作成する
presentation = Presentation()

# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")

# 2 番目のスライドを取得する(インデックスは 0 から始まる)
slide = presentation.Slides[1]

# 指定したスライドを Markdown ファイルとして保存する
slide.SaveToFile("スライド2.md", FileFormat.Markdown)

# リソースを解放する
presentation.Dispose()

インデックスは 0 から始まるため、2 番目のスライドは Slides[1] です。スライドの取得や、インデックスの考え方については、Python で PowerPoint プレゼンテーションのスライドを追加・削除する方法 でも紹介しています。この方法で保存したファイルには、対象の 1 スライド分の内容だけが入り、ページマーカーも ==== Page 1 ==== から振られます。

スライド 2 の Markdown 変換結果

実績項目の 3 行がそのまま 3 つの行として出力されました。全体変換でもスライド単位でも、テキストの並び順はスライド上の配置順に従います。

5. 複数のスライドを順番に Markdown に変換する

必要なスライドが複数枚あるときは、対象のインデックスをループにまとめて、1 枚ずつ ISlide.SaveToFile() で保存します。

from spire.presentation import *

# Presentation オブジェクトを作成する
presentation = Presentation()

# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")

# 1 番目と 2 番目のスライドを順番に出力する
for index in (0, 1):
    slide = presentation.Slides[index]
    slide.SaveToFile("スライド%d.md" % (index + 1), FileFormat.Markdown)

# リソースを解放する
presentation.Dispose()

このコードでは、出力するインデックスをタプル (0, 1) で指定しています。スライドごとに独立したファイルが保存され、ページマーカーはどのファイルも ==== Page 1 ==== から始まります。

複数スライドの Markdown 出力結果

ループの指定を (0, 1, 2) に変えれば 3 スライドまとめて出力することもできます。全体変換とスライド単位の出力は、同じ Presentation オブジェクトから行えます。

まとめ

  • 全体変換:Presentation.SaveToFile() + FileFormat.Markdown で 1 ファイルにまとめられる
  • スライド単位:Presentation.Slides[] で取得したスライドを ISlide.SaveToFile() で保存できる
  • ループ:インデックスを指定して複数のスライドを連続出力できる
  • 掲載先が Web の場合、出力形式に HTML を選ぶ方法 もあります

FAQ

Microsoft PowerPoint をインストールしておく必要がありますか?

必要ありません。Spire.Presentation for Python が PPT/PPTX のファイル構造を直接解析するため、PowerPoint 本体を呼び出さずに変換できます。

複数の PowerPoint ファイルをまとめて Markdown に変換できますか?

1 つの Presentation オブジェクトは 1 つのファイルを扱います。フォルダー内のファイルをループで回すと、連続して変換できます。

import os
from spire.presentation import *

for name in os.listdir("presentations"):
    if name.endswith(".pptx"):
        presentation = Presentation()
        presentation.LoadFromFile(os.path.join("presentations", name))
        base = os.path.splitext(name)[0]
        presentation.SaveToFile(os.path.join("markdown", base + ".md"), FileFormat.Markdown)
        presentation.Dispose()

スライド単位で出力したとき、ページマーカーはどうなりますか?

どのスライドを保存した場合でも、ファイル内のマーカーは ==== Page 1 ==== から始まります。全体変換のときはスライドの順序に応じて ==== Page 2 ====、==== Page 3 ==== と続きます。

表を含むスライドも Markdown にできますか?

できます。表は | 区切りの Markdown 表として出力され、ヘッダー行の区切り行も含まれます。本文の例では、表の見出し行は太字のまま **地域** のように出力されます。

Markdown 以外の形式での活用は?

Markdown はテキストなので、そのままメモ帳やナレッジツールで確認できます。スライドの本文テキストだけを抽出したい場合は Python で PowerPoint からテキストを抽出する方法 が便利です。

ライセンスの案内

全機能を評価したい場合は、30 日間の無料ライセンスを申請 できます。申請したライセンスを適用すると、作成したドキュメントをそのまま利用できます。

Read 4 times