C#を使用してPowerPointプレゼンテーションPPT、PPTXを統合する

プレゼンテーションの統合

プレゼンテーションを別のプレゼンテーションに統合する際には、実際にスライドを単一のプレゼンテーションにまとめて1つのファイルを取得します。

統合できるもの

Aspose.Slidesを使用すると、次のことができます

  • プレゼンテーション全体。すべてのスライドが1つのプレゼンテーションにまとめられます
  • 特定のスライド。選択したスライドが1つのプレゼンテーションにまとめられます
  • 同じ形式のプレゼンテーション(PPTからPPT、PPTXからPPTXなど)や異なる形式のプレゼンテーション(PPTからPPTX、PPTXからODPなど)を互いに統合します。

統合オプション

出力プレゼンテーション内の各スライドがユニークなスタイルを保持するかどうか、または出力プレゼンテーション内のすべてのスライドに特定のスタイルを使用するかどうかを決定するオプションを適用できます。

プレゼンテーションを統合するために、Aspose.SlidesはAddCloneメソッドを提供しています(ISlideCollectionインターフェースから)。プレゼンテーションの統合プロセスのパラメータを定義するいくつかの実装のAddCloneメソッドがあります。各プレゼンテーションオブジェクトにはSlidesコレクションがあるため、スライドを統合したいプレゼンテーションからAddCloneメソッドを呼び出すことができます。

AddCloneメソッドは、ソーススライドのクローンであるISlideオブジェクトを返します。出力プレゼンテーションのスライドは、ソースのスライドの単なるコピーです。したがって、ソースプレゼンテーションに影響を与えることを心配することなく、結果のスライドを変更(たとえば、スタイルや書式設定オプションやレイアウトを適用する)できます。

プレゼンテーションを統合する

Aspose.Slidesは、スライドのレイアウトとスタイルを保持しながらスライドを統合できるAddClone (ISlide)メソッドを提供します(デフォルトのパラメータ)。

このC#コードは、プレゼンテーションを統合する方法を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

スライドマスターを使用したプレゼンテーションの統合

Aspose.Slidesは、スライドマスタープレゼンテーションテンプレートを適用しながらスライドを統合できるAddClone (ISlide, IMasterSlide, Boolean)メソッドを提供します。この方法では、必要に応じて出力プレゼンテーション内のスライドスタイルを変更できます。

このC#コードは、説明された操作を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.Masters[0], allowCloneMissingLayout: true);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

出力プレゼンテーション内のスライドに異なるスライドレイアウトを持たせたい場合は、統合時に代わりにAddClone (ISlide, ILayoutSlide)メソッドを使用してください。

プレゼンテーションから特定のスライドを統合する

このC#コードは、異なるプレゼンテーションから特定のスライドを選択し、1つの出力プレゼンテーションとして結合する方法を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.LayoutSlides[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

スライドレイアウトを適用してプレゼンテーションを統合する

このC#コードは、プレゼンテーションからスライドを結合し、お好みのスライドレイアウトを適用して1つの出力プレゼンテーションを取得する方法を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.LayoutSlides[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

異なるスライドサイズを持つプレゼンテーションを統合する

異なるスライドサイズを持つ2つのプレゼンテーションを統合するには、1つのプレゼンテーションのサイズを変更して、もう1つのプレゼンテーションのサイズと一致させる必要があります。

このサンプルコードは、説明された操作を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
   pres2 = new Presentation("pres2.pptx"))
{
   pres2.SlideSize.SetSize(pres1.SlideSize.Size.Width, pres1.SlideSize.Size.Height, SlideSizeScaleType.EnsureFit);
 
   foreach (ISlide slide in pres2.Slides)
   {
       pres1.Slides.AddClone(slide);
   }
 
   pres1.Save("combined.pptx", SaveFormat.Pptx);
}

プレゼンテーションセクションにスライドを統合する

このC#コードは、特定のスライドをプレゼンテーション内のセクションに統合する方法を示しています:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    for (var index = 0; index < pres2.Slides.Count; index++)
    {
        ISlide slide = pres2.Slides[index];
        pres1.Slides.AddClone(slide, pres1.Sections[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

スライドはセクションの最後に追加されます。