C++を使用してPowerPointプレゼンテーションをマージする

PowerPointプレゼンテーションは、会議、プレゼンテーション、ディスカッションなどの多くのシナリオで使用されます。別の人が作成したさまざまなプレゼンテーションがある場合や、さまざまな会議で個別のプレゼンテーションが使用されている場合があります。共有または文書化の目的で、これらのプレゼンテーションをマージする必要がある場合があります。このタスクを手動で行うには時間がかかります。効率的な方法は、これをプログラムで達成することです。この記事では、C++を使用してPowerPointプレゼンテーションをマージする方法を学習します。

PowerPointプレゼンテーションをマージするためのC++API

Aspose.Slides for C++はC++ライブラリであり、PowerPointプレゼンテーションを操作するための一連の機能を提供します。 APIを使用すると、Microsoft PowerPointを使用せずに、PowerPointプレゼンテーションを作成、変更、および変換できます。さらに、APIは、さまざまなPowerPointファイルをマージする機能を提供します。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.Slides.Cpp

C++を使用してPowerPointプレゼンテーションをマージする

Aspose.Slides forC++を使用して2つのプレゼンテーションをマージするプロセスは簡単です。これを実現するには、両方のプレゼンテーションをロードし、ソースプレゼンテーションスライドをループして、それらのクローンをターゲットプレゼンテーションに追加します。以下は、2つのPowerPointプレゼンテーションをマージする手順です。

以下は、C++を使用してPowerPointプレゼンテーションをマージするためのサンプルコードです。

// ドキュメントディレクトリへのパス。
const String sourceFilePath1 = u"SourceDirectory\\SamplePresentation2.pptx";
const String sourceFilePath2 = u"SourceDirectory\\SamplePresentation3.pptx";
const String outputFilePath = u"OutputDirectory\\mergedPresentation.pptx";

// プレゼンテーションクラスのインスタンス化
SharedPtr<Presentation> presentation1 = MakeObject<Presentation>(sourceFilePath1);
SharedPtr<Presentation> presentation2 = MakeObject<Presentation>(sourceFilePath2);

for (SharedPtr<ISlide> slide : presentation2->get_Slides())
{
	// スライドをソースから宛先にマージする 
	presentation1->get_Slides()->AddClone(slide);
}

// プレゼンテーションを保存する
presentation1->Save(outputFilePath, SaveFormat::Pptx);

次の画像は、ソース、宛先、およびマージされたプレゼンテーションファイルを示しています。

目的地のプレゼンテーション

宛先のPowerPointプレゼンテーション画像

宛先のPowerPointプレゼンテーション画像。

ソースプレゼンテーション

ソースPowerPointプレゼンテーション画像。

ソースPowerPointプレゼンテーション画像。

統合されたプレゼンテーション

マージされたPowerPointプレゼンテーション画像

マージされたPowerPointプレゼンテーション画像。

C++を使用して特定のPowerPointスライドをマージする

プレゼンテーション全体に興味がなく、代わりにスライドのサブセットを追加したい場合があります。これを実現するには、ソースプレゼンテーションスライドをループしながら必要な条件を追加します。以下は、選択したPowerPointスライドをマージする手順です。

以下は、C++を使用して選択したPowerPointスライドをマージするためのサンプルコードです。

// ドキュメントディレクトリへのパス。
const String sourceFilePath1 = u"SourceDirectory\\SamplePresentation2.pptx";
const String sourceFilePath2 = u"SourceDirectory\\SamplePresentation3.pptx";
const String outputFilePath = u"OutputDirectory\\mergedPresentation.pptx";

// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation1 = MakeObject<Presentation>(sourceFilePath1);
SharedPtr<Presentation> presentation2 = MakeObject<Presentation>(sourceFilePath2);

for (int i = 0; i < presentation2->get_Slides()->get_Count(); i++)
{
	// スライドだけをマージする
	if (i % 2 == 0)
	{
		presentation1->get_Slides()->AddClone(presentation2->get_Slides()->idx_get(i));
	}
}

// プレゼンテーションを保存する
presentation1->Save(outputFilePath, SaveFormat::Pptx);

次の画像は、マージされたプレゼンテーションファイルを示しています。ソースと宛先のプレゼンテーションファイルは、前の例で使用したものと同じです。

統合されたプレゼンテーション

選択したスライドが追加されたPowerPointプレゼンテーションをマージ

選択したスライドが追加されたPowerPointプレゼンテーションをマージしました。

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

前の2つの例では、ソースプレゼンテーションと宛先プレゼンテーションの両方のデザインは同じでした。次の画像は、さまざまなデザインのプレゼンテーションをマージした結果を示しています。

目的地のプレゼンテーション

宛先のPowerPointプレゼンテーション画像

宛先のPowerPointプレゼンテーション画像。

ソースプレゼンテーション

ソースPowerPointプレゼンテーション画像

ソースPowerPointプレゼンテーション画像。

統合されたプレゼンテーション

最初のスライドが追加されたPowerPointプレゼンテーションをマージ

最初のスライドが追加されたPowerPointプレゼンテーションをマージしました。

マージされたプレゼンテーション画像で、3番目のスライドがマージプロセス中に元のスタイルを保持していることがわかります。ソーススライドで宛先のプレゼンテーションスタイルを使用する場合は、次の手順を使用してください。

以下は、スライドマスターを使用してPowerPointプレゼンテーションをマージするためのサンプルコードです。

// ドキュメントディレクトリへのパス。
const String sourceFilePath1 = u"SourceDirectory\\SamplePresentation.pptx";
const String sourceFilePath2 = u"SourceDirectory\\SamplePresentation3.pptx";
const String outputFilePath = u"OutputDirectory\\mergedPresentation.pptx";

// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation1 = MakeObject<Presentation>(sourceFilePath1);
SharedPtr<Presentation> presentation2 = MakeObject<Presentation>(sourceFilePath2);

// スライドマスターを使用して最初のスライドをマージします
presentation1->get_Slides()->AddClone(presentation2->get_Slides()->idx_get(0), presentation1->get_Masters()->idx_get(0), true);

// プレゼンテーションを保存する
presentation1->Save(outputFilePath, SaveFormat::Pptx);

次の画像は、上記のサンプルコードによって生成されたマージされたプレゼンテーションを示しています。

統合されたプレゼンテーション

宛先のプレゼンテーションスタイルを使用して追加された最初のスライドとPowerPointプレゼンテーションをマージ

PowerPointプレゼンテーションを、宛先のプレゼンテーションスタイルを使用して追加された最初のスライドとマージしました。

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C++を使用して複数のPowerPointプレゼンテーションをマージする方法を学習しました。完全なプレゼンテーションまたは選択したスライドをマージする方法を見てきました。さらに、プレゼンテーションを組み合わせるために宛先プレゼンテーションのスタイルを使用する方法を学習しました。 Aspose.Slides for C++は、PowerPointファイルを操作するための多くの追加機能を提供します。 公式ドキュメントを使用して、APIを詳細に調べることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目