.NET で PowerPoint スライドを PNG に変換

概要

この記事では、C# を使用して PowerPoint プレゼンテーションを PNG 形式に変換する方法を説明します。以下のトピックをカバーしています。

.NET での PowerPoint から PNG への変換

C# のサンプルコードで PowerPoint を PNG に変換する方法については、以下のセクション PowerPoint を PNG に変換 を参照してください。コードは PPT、PPTX、ODP など複数の形式を Presentation オブジェクトで読み込み、スライドのサムネイルを PNG 形式で保存できます。他の類似した画像形式への変換(JPG、BMP、TIFF、SVG)については、以下の記事で解説しています。

PowerPoint を PNG に変換することについて

PNG(Portable Network Graphics)形式は JPEG(Joint Photographic Experts Group)ほど一般的ではありませんが、依然として非常に広く利用されています。

使用例: 複雑な画像でサイズが問題とならない場合、PNG は JPEG よりも適した画像形式です。

PowerPoint を PNG に変換

以下の手順を実行します:

  1. Presentation クラスのインスタンスを作成します。
  2. ISlide インターフェイスを通じて、Presentation.Slides コレクションからスライド オブジェクトを取得します。
  3. 各スライドのサムネイルを取得するために、ISlide.GetImage メソッドを使用します。
  4. スライドのサムネイルを PNG 形式で保存するために、IPresentation.Save(String, SaveFormat, ISaveOptions メソッドを使用します。

この C# コードは、PowerPoint プレゼンテーションを PNG に変換する方法を示しています。Presentation オブジェクトは PPT、PPTX、ODP などを読み込み、プレゼンテーション内の各スライドを PNG 形式または他の画像形式に変換します。

using (Presentation pres = new Presentation("pres.pptx"))
{
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage())
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

カスタム寸法で PowerPoint を PNG に変換

特定のスケールで PNG ファイルを取得したい場合は、desiredXdesiredY の値を設定します。これらは生成されるサムネイルの寸法を決定します。

以下の C# コードは上記の操作を示しています:

using (Presentation pres = new Presentation("pres.pptx"))
{
    float scaleX = 2f;
    float scaleY = 2f;
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(scaleX, scaleY))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

カスタムサイズで PowerPoint を PNG に変換

特定のサイズで PNG ファイルを取得したい場合は、imageSize に対して好みの widthheight 引数を渡すことができます。

以下のコードは、画像サイズを指定しながら PowerPoint を PNG に変換する方法を示しています:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Size size = new Size(960, 720);
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(size))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

FAQ

特定のシェイプ(例: グラフや画像)だけをエクスポートしたい場合、スライド全体ではなくシェイプだけを PNG に出力できますか?

Aspose.Slides は 個別シェイプのサムネイル生成 をサポートしており、シェイプを PNG 画像としてレンダリングできます。

サーバー上で並列変換はサポートされていますか?

はい、ただしスレッド間で単一の Presentation インスタンスを共有しないでください。スレッドまたはプロセスごとに別々のインスタンスを使用します。(共有しない)

PNG エクスポート時の評価版の制限は何ですか?

評価モードでは出力画像に透かしが追加され、ライセンスが適用されるまで その他の制限 が適用されます。