プレゼンテーションのマージ - C++ PowerPoint API
ヒント
Asposeの無料オンライン マージアプリ をチェックしてみてください。これにより、同じ形式(PPTからPPT、PPTXからPPTXなど)でPowerPointプレゼンテーションをマージしたり、異なる形式(PPTからPPTX、PPTXからODPなど)でプレゼンテーションをマージしたりすることができます。
プレゼンテーションのマージ
一つのプレゼンテーションを別のプレゼンテーションにマージすることは、実質的にはそれらのスライドを一つのプレゼンテーションに結合し、一つのファイルを得ることを意味します。
情報
ほとんどのプレゼンテーションプログラム(PowerPointやOpenOffice)は、そのようにプレゼンテーションを結合する機能がありません。
しかし、Aspose.Slides for C++を使用すれば、さまざまな方法でプレゼンテーションをマージできます。品質やデータの損失を気にすることなく、すべてのシェイプ、スタイル、テキスト、フォーマット、コメント、アニメーションなどを持つプレゼンテーションをマージすることができます。
参照
マージできるもの
Aspose.Slidesでは、以下をマージできます。
- 完全なプレゼンテーション。すべてのスライドが一つのプレゼンテーションに収まります。
- 特定のスライド。選択したスライドが一つのプレゼンテーションに収まります。
- 同一フォーマットのプレゼンテーション(PPTからPPT、PPTXからPPTXなど)や異なるフォーマット(PPTからPPTX、PPTXからODPなど)を一つにマージします。
注意
プレゼンテーションのほかにも、Aspose.Slidesでは他のファイルをマージできます:
マージオプション
マージ時に、次のオプションを適用できます。
- 出力プレゼンテーション内の各スライドがユニークなスタイルを保持するかどうか。
- 出力プレゼンテーション内のすべてのスライドに特定のスタイルを使用するかどうか。
プレゼンテーションをマージするために、Aspose.SlidesはAddCloneメソッド(ISlideCollectionインターフェースから)を提供しています。AddClone
メソッドには、プレゼンテーションのマージプロセスパラメータを定義する複数の実装があります。すべてのPresentationオブジェクトにはSlidesコレクションがあるため、スライドをマージしたいプレゼンテーションからAddClone
メソッドを呼ぶことができます。
AddClone
メソッドは、ソーススライドのクローンであるISlide
オブジェクトを返します。出力プレゼンテーションのスライドは、すべてソースからのスライドのコピーです。したがって、結果のスライド(たとえば、スタイル、フォーマットオプション、レイアウトを適用するなど)に変更を加えても、ソースプレゼンテーションに影響を与えることはありません。
プレゼンテーションのマージ
Aspose.Slidesは、AddClone (ISlide)メソッドを提供しており、スライドのレイアウトやスタイルを保持しながらスライドを結合することができます(デフォルトパラメータ)。
このC++コードは、プレゼンテーションをマージする方法を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
スライドマスターを使用したプレゼンテーションのマージ
Aspose.Slidesは、AddClone (ISlide, IMasterSlide, bool)メソッドを提供し、スライドマスタープレゼンテーションテンプレートを適用しながらスライドを結合できます。この方法で、必要に応じて出力プレゼンテーションのスライドスタイルを変更できます。
このC++コードは、説明した操作を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide, pres2->get_Masters()->idx_get(0), true);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
注意
スライドマスターのスライドレイアウトは自動的に決定されます。適切なレイアウトが決定できない場合、AddClone
メソッドのallowCloneMissingLayout
ブールパラメータがtrueに設定されていると、ソーススライドのレイアウトが使用されます。そうでない場合は、PptxEditExceptionがスローされます。
出力プレゼンテーションのスライドに異なるスライドレイアウトを持たせたい場合、マージ時にAddClone (ISlide, ILayoutSlide)メソッドを使用してください。
特定のスライドをプレゼンテーションからマージ
このC++コードは、異なるプレゼンテーションから特定のスライドを選択し、結合して一つの出力プレゼンテーションを作成する方法を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
スライドレイアウトを使用したプレゼンテーションのマージ
このC++コードは、プレゼンテーションからスライドを結合し、希望のスライドレイアウトを適用して一つの出力プレゼンテーションを取得する方法を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
異なるスライドサイズを持つプレゼンテーションのマージ
注意
異なるスライドサイズを持つプレゼンテーションをマージすることはできません。異なるスライドサイズのプレゼンテーションを2つマージするには、いずれかのプレゼンテーションのサイズを変更して、もう一方のプレゼンテーションのサイズと一致させる必要があります。
このサンプルコードは、説明した操作を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres1Size = pres1->get_SlideSize()->get_Size();
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
pres2->get_SlideSize()->SetSize(pres1Size.get_Width(), pres1Size.get_Height(), SlideSizeScaleType::EnsureFit);
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
プレゼンテーションセクションにスライドをマージ
このC++コードは、プレゼンテーションのセクションに特定のスライドをマージする方法を示しています:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (int32_t index = 0; index < pres2->get_Slides()->get_Count(); index++)
{
auto slide = pres2->get_Slides()->idx_get(index);
pres1->get_Slides()->AddClone(slide, pres1->get_Sections()->idx_get(0));
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
スライドはセクションの最後に追加されます。