使用 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。如果您有任何问题,请随时在 论坛 上与我们联系。

也可以看看