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

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

1つのプレゼンテーションを別のプレゼンテーションに統合する際、実質的にはそのスライドを1つのプレゼンテーションに結合して1つのファイルを取得することになります。

統合できるもの

Aspose.Slidesを使用すると、以下を統合できます。

  • 完全なプレゼンテーション。プレゼンテーションのすべてのスライドが1つのプレゼンテーションに収まります。
  • 特定のスライド。選択したスライドが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();
}

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