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

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

プレゼンテーションを別のプレゼンテーションに結合すると、スライドが単一のプレゼンテーションにまとめられ、1つのファイルになります。

結合できる対象

Aspose.Slides を使用すると、次のものを結合できます。

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

結合オプション

次の条件を決定するオプションを適用できます。

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

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

addClone メソッドは、元のスライドのクローンである Slide オブジェクトを返します。出力プレゼンテーションのスライドは、元のスライドのコピーに過ぎません。そのため、ソースプレゼンテーションに影響を与えることなく、結果のスライドに対してスタイルや書式設定、レイアウトの変更などを行うことができます。

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

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

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

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

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

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

この JavaScript コードは、上記の操作を実演します:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

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

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

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

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

function getTitleSlide(presentation) {
  for (let i = 0; i < presentation.getSlides().size(); i++) {
    let slide = presentation.getSlides().get_Item(i);
    if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) {
      return slide;
    }
  }
  return null;
}
let presentation = new aspose.slides.Presentation();
let presentation1 = new aspose.slides.Presentation("presentation1.pptx");
let presentation2 = new aspose.slides.Presentation("presentation2.pptx");
try {
    presentation.getSlides().removeAt(0);
    
    let slide1 = getTitleSlide(presentation1);

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

    let slide2 = getTitleSlide(presentation2);

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

    presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation2.dispose();
    presentation1.dispose();
    presentation.dispose();
}

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

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

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

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

サイズが異なるスライドを持つ 2 つのプレゼンテーションを結合するには、サイズが合うようにどちらかのプレゼンテーションをリサイズする必要があります。

このサンプルコードは、上記の操作を実演します:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit);
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

スライドをプレゼンテーションのセクションに結合

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

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

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

FAQ

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

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

コメントとその作成者は転送されますか?

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

ソースプレゼンテーションがパスワードで保護されている場合はどうなりますか?

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

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

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

参照

Aspose は、FREE Online Collage Maker を提供しています。このオンラインサービスを使用すると、JPG から JPG や PNG から PNG への画像結合、フォトグリッド の作成などが可能です。

Aspose FREE Online Merger をチェックしてください。PowerPoint プレゼンテーションを同一フォーマット(例:PPT → PPT、PPTX → PPTX)または異なるフォーマット(例:PPT → PPTX、PPTX → ODP)で結合できます。

Aspose FREE Online Merger