.NET でプレゼンテーションスライドを SVG 画像としてレンダリング

概要

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

フォーマット: PowerPoint

フォーマット: PPT

フォーマット: PPTX

フォーマット: ODP

フォーマット: Slide

この記事で取り上げるその他のトピック。

SVG 形式

SVG—Scalable Vector Graphics の略称で、二次元画像を描画するために使用される標準的なグラフィックタイプまたは形式です。SVG は画像を XML のベクターとして保存し、その動作や外観を定義する詳細を含みます。

SVG は、拡張性、インタラクティブ性、パフォーマンス、アクセシビリティ、プログラマビリティなどの点で非常に高い基準を満たす数少ない画像形式の一つです。このため、Web 開発で広く利用されています。

次のようなケースで SVG ファイルを使用したくなることがあります。

  • プレゼンテーションを 非常に大きなサイズ で印刷したい。SVG 画像は任意の解像度やサイズに拡大でき、品質を損なうことなく何度でもサイズ変更が可能です。
  • スライド内のチャートやグラフを 異なる媒体やプラットフォーム で使用したい。ほとんどの閲覧環境が SVG を解釈できます。
  • 画像サイズを 可能な限り小さく したい。SVG ファイルは、特にビットマップベース(JPEG や PNG)の高解像度画像に比べて一般的にサイズが小さくなります。

スライドを SVG 画像としてレンダリング

Aspose.Slides for .NET を使用すると、プレゼンテーション内のスライドを SVG 画像としてエクスポートできます。以下の手順で SVG 画像を生成します。

手順: PowerPoint から SVG への変換 (C#)

次のサンプルコードは、.NET を使用した変換を説明しています。

コード 手順:

  1. Presentation クラスのインスタンスを作成します。
    • .ppt 拡張子で PPT ファイルを Presentation クラス内に読み込む。
    • .pptx 拡張子で PPTX ファイルを Presentation クラス内に読み込む。
    • .odp 拡張子で ODP ファイルを Presentation クラス内に読み込む。
    • .pps 拡張子で PPS ファイルを Presentation クラス内に読み込む。
  2. プレゼンテーション内のすべてのスライドを反復処理します。
  3. 各スライドを FileStream を使用して個別の SVG ファイルとして書き出します。

以下の C# サンプルコードは、Aspose.Slides を使用して PowerPoint を SVG に変換する方法を示しています:

// Presentation オブジェクトは PPT、PPTX、ODP などの PowerPoint 形式をロードできます。
using (Presentation pres = new Presentation("pres.pptx"))
{
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (FileStream fileStream = new FileStream($"slide-{index}.svg", FileMode.Create, FileAccess.Write))
        {
            slide.WriteAsSvg(fileStream);   
        }
    }
}

よくある質問

なぜ生成された SVG がブラウザー間で見た目が異なる可能性があるのでしょうか?

特定の SVG 機能のサポートはブラウザーエンジンごとに実装が異なります。SVGOptions パラメーターを使用すると、互換性の問題を緩和できます。

スライドだけでなく、個別のシェイプも SVG にエクスポートできますか?

はい。任意の shape can be saved as a separate SVG で、アイコンやピクトグラム、グラフィックの再利用に便利です。

複数のスライドを単一の SVG(ストリップ/ドキュメント)に結合できますか?

標準的なシナリオは「1 スライド → 1 SVG」です。複数スライドを単一の SVG キャンバスに結合する場合は、アプリケーションレベルでの後処理が必要です。

参照

この記事でも以下のトピックを取り上げています。コードは上記と同じです。

フォーマット: PowerPoint

フォーマット: PPT

フォーマット: PPTX

フォーマット: ODP