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

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

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)メソッドを提供します(デフォルトのパラメータ)。

このJavaコードは、プレゼンテーションをマージする方法を示しています:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

スライドマスターを使用してプレゼンテーションをマージする

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

スライドレイアウトを使ってプレゼンテーションをマージする

このJavaコードは、プレゼンテーションからスライドを結合し、それに希望するスライドレイアウトを適用して1つの出力プレゼンテーションを取得する方法を示しています:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

異なるスライドサイズのプレゼンテーションをマージする

スライドサイズが異なる2つのプレゼンテーションをマージするには、1つのプレゼンテーションのサイズを他のプレゼンテーションのサイズに合わせてリサイズする必要があります。

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize((float)pres1.getSlideSize().getSize().getWidth(), (float)pres1.getSlideSize().getSize().getHeight(), SlideSizeScaleType.EnsureFit);

        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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