Android で効率的にプレゼンテーションを結合

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

プレゼンテーションを別のプレゼンテーションに結合すると、実質的にスライドを単一のプレゼンテーションにまとめて 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) メソッドを使用してください。

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

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

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

Presentation presentation = new Presentation();
Presentation presentation1 = new Presentation("presentation1.pptx");
Presentation presentation2 = new Presentation("presentation2.pptx");
try {
    presentation.getSlides().removeAt(0);
    
    ISlide slide1 = getTitleSlide(presentation1);

    if (slide1 != null)
        presentation.getSlides().addClone(slide1);

    ISlide slide2 = getTitleSlide(presentation2);

    if (slide2 != null)
        presentation.getSlides().addClone(slide2);

    presentation.save("combined.pptx", SaveFormat.Pptx);
} finally {
    presentation2.dispose();
    presentation1.dispose();
    presentation.dispose();
}
static ISlide getTitleSlide(IPresentation presentation) {
    for (ISlide slide : presentation.getSlides()) {
        if (slide.getLayoutSlide().getLayoutType() == SlideLayoutType.Title) {
            return slide;
        }
    }
    return null;
}

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

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

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

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

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

よくある質問

プレゼンテーションを結合する際にスライド数に制限はありますか?

厳密な制限はありません。Aspose.Slides は大きなファイルを処理できますが、パフォーマンスはファイルサイズとシステムリソースに依存します。非常に大きなプレゼンテーションの場合は、64 ビット JVM を使用し、十分なヒープメモリを割り当てることを推奨します。

埋め込み動画や音声を含むプレゼンテーションを結合できますか?

はい。Aspose.Slides はスライドに埋め込まれたマルチメディア コンテンツを保持しますが、最終的なプレゼンテーションはかなり大きくなる可能性があります。

結合時にフォントは保持されますか?

はい。ソースプレゼンテーションで使用されているフォントは、システムにインストールされているか埋め込み されている限り、出力ファイルに保持されます。