使用 C++ 合併 PowerPoint 演示文稿

PowerPoint 演示文稿用於許多場景,例如會議、演示文稿、討論等。可能會有不同的演示文稿由不同的人創建或在不同的會議中使用單獨的演示文稿。您可能需要合併這些演示文稿以用於共享或文檔目的。手動執行此任務非常耗時。有效的方法是以編程方式實現這一點。在本文中,您將學習如何使用 C++ 合併 PowerPoint 演示文稿。

用於合併 PowerPoint 演示文稿的 C++ API

Aspose.Slides for C++ 是一個 C++ 庫,它提供了一系列用於處理 PowerPoint 演示文稿的功能。 API 允許您在不使用 Microsoft PowerPoint 的情況下創建、修改和轉換 PowerPoint 演示文稿。此外,API 提供了合併不同 PowerPoint 文件的能力。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

PM> Install-Package Aspose.Slides.Cpp

使用 C++ 合併 PowerPoint 演示文稿

使用 Aspose.Slides for C++ 合併兩個演示文稿的過程輕而易舉。為此,您加載兩個演示文稿,循環瀏覽源演示文稿幻燈片,並將它們的克隆添加到目標演示文稿中。以下是合併兩個 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 演示文稿

在前兩個示例中,源和目標表示的設計是相同的。下圖顯示了合併具有不同設計的演示文稿的結果。

目的地介紹

目的地 PowerPoint 演示文稿圖像

目標 PowerPoint 演示圖像。

來源介紹

來源 PowerPoint 演示文稿圖像

來源 PowerPoint 演示文稿圖像。

合併演示

合併了 PowerPoint 演示文稿並添加了第一張幻燈片

添加了第一張幻燈片的合併 PowerPoint 演示文稿。

您可以在合併的演示文稿圖像中看到,第三張幻燈片在合併過程中保留了其原始樣式。如果您希望源幻燈片使用目標演示文稿樣式,請使用以下步驟。

以下是使用幻燈片母版合併 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。如果您有任何疑問,請隨時在論壇 上與我們聯繫。

也可以看看