PythonでPowerPointプレゼンテーションをPNG画像やSVGに変換する方法

PowerPointプレゼンテーションは、創造力の発揮、知識の共有、意見の表明のための重要なツールとして、教育、ビジネスレポート、個人プロジェクトの発表などの分野で広く使用されています。しかし、異なる共有シーンや受け手のニーズに対応するために、時にはPPTの内容を画像形式で保存・共有する必要があります。こうすることで、ソフトウェアの互換性の制限を避け、特定のソフトウェアをインストールすることなくコンテンツを閲覧できるようにし、また、ソーシャルネットワーク、ブログ、電子メールで迅速に共有・埋め込みをすることも容易になります。Pythonのコードを使用すると、PowerPointプレゼンテーションを効率的に画像に変換でき、作業効率を向上させることができます。
この記事では、**Pythonを使用してPowerPointプレゼンテーションを画像に変換する方法**を紹介します。

- **[PowerPointスライドをPNGの画像に変換](#powerpointスライドをpngの画像に変換)**
- **[PowerPointスライドを画像に変換してサイズを指定](#powerpointスライドを画像に変換してサイズを指定)**
- **[PowerPointスライドをSVG画像ファイルに変換](#powerpointスライドをsvg画像ファイルに変換)**

この記事で紹介する方法には、[Spire.Presentation for Python](https://www.e-iceblue.com/Download/Spire-Presentation-Python.html)が必要です。PyPIからインストールできます：`pip install Spire.Presentation`。

[無料ライセンスの申請](https://www.e-iceblue.com/TemLicense.html)

## PowerPointスライドをPNGの画像に変換
ライブラリの`Presentation.Slides[]`プロパティを使用して特定のスライドを取得し、`ISlide.SaveAsImage()`メソッドを使用してスライドを画像ストリームに保存し、その後、画像ファイルに保存します。
以下は詳細な手順です：
1. 必要なモジュールをインポート。
2. `Presentation`インスタンスを作成。
3. `Presentation.LoadFromFile()`メソッドを使用して、ファイルからPowerPointプレゼンテーションをロード。
4. プレゼンテーションのスライドを反復処理：
    - `Presentation.Slides[]`プロパティを使用してスライドを取得。
    - `ISlide.SaveAsImage()`メソッドを使用してスライドを画像ストリームに保存。
    - `Stream.Save()`メソッドを使用して画像をファイルに保存。
5. リソースを解放。

**コード例**
```python
from spire.presentation import *
from spire.presentation.common import *

# Presentationのインスタンスを作成
presentation = Presentation()

# プレゼンテーションファイルを読み込む
presentation.LoadFromFile("Sample.pptx")

# プレゼンテーション内のスライドを順に処理
for i in range(presentation.Slides.Count):
    # 現在のスライドを取得
    slide = presentation.Slides[i]
    # スライドを画像ストリームとして保存
    image = slide.SaveAsImage()
    # 画像をファイルに保存
    image.Save("output/PresentationToImage/Slide-" + str(i) + ".png")

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

変換結果
![PowerPointスライドをPNGの画像に変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/e76e9ca1-0971-30d7-0c80-4ded8810863a.png)

## PowerPointスライドを画像に変換してサイズを指定
ライブラリは`ISlide.SaveAsImageByWH()`メソッドも提供しており、指定した幅と高さでスライドを画像ストリームに保存します。
以下は詳細な手順です：
1. 必要なモジュールをインポート。
2. `Presentation`インスタンスを作成。
3. `Presentation.LoadFromFile()`メソッドを使用して、ファイルからPowerPointプレゼンテーションをロード。
4. プレゼンテーションのスライドを反復処理：
    - `Presentation.Slides[]`プロパティを使用してスライドを取得。
    - `ISlide.SaveAsImageByWH()`メソッドを使用して指定した幅と高さで画像ストリームに保存。
    - `Stream.Save()`メソッドを使用して画像をファイルに保存。
5. リソースを解放。

**コード例**
```python
from spire.presentation import *
from spire.presentation.common import *

# Presentationのインスタンスを作成
presentation = Presentation()

# プレゼンテーションファイルを読み込む
presentation.LoadFromFile("Sample.pptx")

# 全てのスライドを順に処理
for i in range(presentation.Slides.Count):
    # スライドを取得
    slide = presentation.Slides[i]
    # 指定されたサイズでスライドを画像ストリームとして保存
    image = slide.SaveAsImageByWH(800, 600)
    # 画像をファイルに保存
    image.Save("output/PresentationToImageWithSize/Slide" + str(i) + ".png")

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

変換結果
![PowerPointスライドを画像に変換してサイズを指定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/f172ca07-fa95-a746-3e9e-c70842658198.png)

## PowerPointスライドをSVG画像ファイルに変換
通常の画像に変換する以外に、ライブラリは`ISlide.SaveToSvg()`メソッドを提供しており、スライドをSVG形式の画像に変換します。変換前に、`Presentation.IsNoteRetained`プロパティを使用して、変換時にスライドのメモを保持するかどうかを設定することもできます。
以下は手順です：
1. 必要なモジュールをインポート。
2. `Presentation`インスタンスを作成。
3. `Presentation.LoadFromFile()`メソッドを使用して、ファイルからPowerPointプレゼンテーションをロード。
4. `Presentation.IsNoteRetained`プロパティを使用して、変換時にスライドのメモを保持するかどうかを設定。
5. プレゼンテーションのスライドを反復処理：
    - `Presentation.Slides[]`プロパティを使用してスライドを取得。
    - `ISlide.SaveToSvg()`メソッドを使用してスライドをSVG画像ストリームに保存。
    - `Stream.Save()`メソッドを使用してSVG画像をファイルに保存。
6. リソースを解放。

**コード例**
```python
from spire.presentation.common import *
from spire.presentation import *

# Presentationのインスタンスを作成
presentation = Presentation()

# プレゼンテーションファイルを読み込む
presentation.LoadFromFile("Sample.pptx")

# ノートを保持するかどうかを設定
presentation.IsNoteRetained = False

# スライドを順に処理
for i in range(presentation.Slides.Count):
    # スライドを取得
    slide = presentation.Slides[i]
    # スライドをSVGストリームとして保存
    svg = slide.SaveToSVG()
    # SVGストリームをファイルに保存
    svg.Save("output/PresentationToSvg/Slide-" + str(i) + ".svg")

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

変換結果
![PowerPointスライドをSVG画像ファイルに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/ddae8c99-ef34-3239-4a0a-7353a6c75626.png)

この記事では、Pythonコードを使用してPowerPointプレゼンテーションのスライドを画像およびSVG画像ファイルに保存する方法を紹介しました。

PowerPointプレゼンテーションの処理テクニックについては、[Spire.Presentation for Pythonのチュートリアル](https://www.e-iceblue.com/Tutorials/Python/Spire.Presentation-for-Python/Program-Guide/Spire.Presentation-for-Python-Program-Guide-Content.html)をご覧ください。