.NET でプレゼンテーションを効率的にマージ

プレゼンテーションマージの最適化

Aspose.Slides for .NET を使用すると、スタイル、レイアウト、すべての要素を保持したまま PowerPoint プレゼンテーションをシームレスに結合できます。他のツールとは異なり、Aspose.Slides は品質やデータを失うことなくプレゼンテーションをブレンドします。プレゼンテーション全体、特定のスライド、さらには異なるファイル形式(PPT から PPTX など)をマージできます。

マージ機能

  • フルプレゼンテーション マージ: すべてのスライドを 1 つのファイルにまとめます。
  • 特定スライド マージ: 選択したスライドを組み合わせます。
  • クロスフォーマット マージ: 形式が異なるプレゼンテーションを統合し、完全性を維持します。

プレゼンテーションのマージ

1 つのプレゼンテーションを別のプレゼンテーションにマージする と、スライドを 1 つのプレゼンテーションに結合して 1 つのファイルにします。

マージできる対象

Aspose.Slides を使用すると、次のものをマージできます。

  • プレゼンテーション全体。すべてのスライドが 1 つのプレゼンテーションにまとめられます。
  • 特定のスライド。選択したスライドが 1 つのプレゼンテーションにまとめられます。
  • 同一形式(PPT → PPT、PPTX → PPTX など)および異なる形式(PPT → PPTX、PPTX → ODP など)のプレゼンテーション同士を相互にマージします。

マージ オプション

次のいずれかを決定するオプションを適用できます。

  • 出力プレゼンテーションの各スライドが固有のスタイルを保持するか
  • 出力プレゼンテーションのすべてのスライドに共通のスタイルを使用するか

プレゼンテーションをマージするには、Aspose.Slides は AddClone メソッド(ISlideCollection インターフェイスから)を提供します。AddClone メソッドには、マージ プロセスのパラメーターを定義する複数の実装があります。各 Presentation オブジェクトは 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) メソッドを代わりに使用してください。

プレゼンテーションから特定スライドをマージ

複数のプレゼンテーションから特定スライドをマージすると、カスタム スライド デックの作成に便利です。Aspose.Slides for .NET は、必要なスライドだけを選択してインポートできます。API は元のスライドの書式設定、レイアウト、デザインを保持します。

以下の C# コードは新しいプレゼンテーションを作成し、2 つの別のプレゼンテーションからタイトル スライドを追加して、結果をファイルに保存します:

using (Presentation presentation = new Presentation())
using (Presentation presentation1 = new Presentation("presentation1.pptx"))
using (Presentation presentation2 = new Presentation("presentation2.pptx"))
{
    presentation.Slides.RemoveAt(0);

    ISlide slide1 = GetTitleSlide(presentation1);

    if (slide1 != null)
        presentation.Slides.AddClone(slide1);

    ISlide slide2 = GetTitleSlide(presentation2);

    if (slide2 != null)
        presentation.Slides.AddClone(slide2);

    presentation.Save("combined.pptx", SaveFormat.Pptx);
}
static ISlide GetTitleSlide(IPresentation presentation)
{
    foreach (ISlide slide in presentation.Slides)
    {
        if (slide.LayoutSlide.LayoutType == SlideLayoutType.Title)
        {
            return slide;
        }
    }
    return null;
}

スライド レイアウトを使用したプレゼンテーションのマージ

この 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 つのプレゼンテーションをマージするには、どちらか一方のスライド サイズをもう一方に合わせてリサイズする必要があります。

このサンプル コードは上記の操作を示しています:

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);
}

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

FAQ

マージ時にスピーカーノートは保持されますか?

はい。スライドをクローンすると、ノート、書式設定、アニメーションを含むすべてのスライド要素が引き継がれます。

コメントと作者情報は転送されますか?

コメントはスライド コンテンツの一部としてコピーされます。コメントの作者ラベルは結果のプレゼンテーション内のコメント オブジェクトとして保持されます。

元のプレゼンテーションがパスワードで保護されている場合は?

LoadOptions.Password を使用してパスワードで 開く 必要があります。ロード後、これらのスライドは保護されていないターゲット ファイル(または保護されたファイル)に安全にクローンできます。

マージ操作はどの程度スレッドセーフですか?

同じ Presentation インスタンスを 複数のスレッド から使用しないでください。推奨ルールは「1 ドキュメント — 1 スレッド」です。別々のファイルは別々のスレッドで並行処理できます。