PowerPointをC#でPNGに変換

概要

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

C# PowerPointをPNGに変換

PowerPointをPNGに変換するためのC#サンプルコードについては、以下のセクション、つまりC#でPowerPointをPNGに変換を参照してください。このコードは、PresentationオブジェクトにPPT、PPTX、ODPなどの形式をロードし、スライドのサムネイルをPNG形式で保存します。他のPowerPointから画像への変換については、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. IPresentation.Save(String, SaveFormat, ISaveOptionsメソッドを使用して、スライドのサムネイルをPNG形式で保存します。

この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ファイルを取得したい場合は、結果のサムネイルの寸法を決定するdesiredXおよびdesiredYの値を設定できます。

この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のために希望するwidthおよびheight引数を渡すことができます。

このコードは、画像のサイズを指定して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);
        }
    }
}