SmartArt 用于增强 PowerPoint 演示文稿的体验并直观地呈现数据。它可用于使文本更加突出和吸引人,也可用于显示流程图、流程、关系图等。在本文中,您将学习如何使用 C++ 在 PowerPoint 演示文稿中创建 SmartArt。
- 用于在 PowerPoint 演示文稿中创建 SmartArt 的 C++ API
- 使用 C++ 在 PowerPoint 中创建 SmartArt 形状
- 在 PowerPoint 演示文稿中访问 SmartArt 形状
- 使用 C++ 更改 SmartArt 形状的样式
用于在 PowerPoint 演示文稿中创建 SmartArt 的 C++ API
Aspose.Slides for C++ 是一个用于处理 PowerPoint 文件的 C++ API。它使您无需其他软件即可创建、阅读和修改 PPT 和 PPTX 文件。此外,API 支持在 PowerPoint 演示文稿中创建 SmartArt。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Slides.Cpp
使用 C++ 在 PowerPoint 中创建 SmartArt 形状
以下是在 PowerPoint 演示文稿中创建 SmartArt 形状的步骤。
- 创建一个 Presentation 类的实例来表示一个新的 PowerPoint 文件。
- 检索所需的幻灯片。
- 使用 ISlide->getShapes()->AddSmartArt(float x, float y, float width, float height, SmartArt::SmartArtLayoutType layoutType) 方法添加 SmartArt。
- 使用 Presentation->Save(System::String fname, Export::SaveFormat format) 方法保存演示文稿。
以下示例代码展示了如何使用 C++ 在 PowerPoint 中创建 SmartArt 形状。
// 文件路径
const String outputFilePath = u"OutputDirectory\\CreateSmartArt_out.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// 检索第一张幻灯片
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 添加 SmartArt
auto smartArt = slide->get_Shapes()->AddSmartArt(0, 0, 400, 400, Aspose::Slides::SmartArt::SmartArtLayoutType::BasicBlockList);
smartArt->get_AllNodes()->idx_get(0)->get_TextFrame()->set_Text(u"First Block");
smartArt->get_AllNodes()->idx_get(1)->get_TextFrame()->set_Text(u"Second Block");
// 保存演示文稿
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
在 PowerPoint 演示文稿中访问 SmartArt 形状
您可以按照以下步骤访问 PowerPoint 文件中的 SmartArt 形状。
- 使用 Presentation 类加载 PowerPoint 文件。
- 循环遍历形状。
- 如果形状的类型为 ISmartArt,则将其引用作为 ISmartArt 对象。
以下示例代码展示了如何使用 C++ 从 PowerPoint 演示文稿中访问 SmartArt 形状。
// 文件路径
const String sourceFilePath = u"OutputDirectory\\CreateSmartArt_out.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 循环遍历形状
for (auto shape : presentation->get_Slides()->idx_get(0)->get_Shapes())
{
// 检查形状是否为 SmartArt 类型
if (System::ObjectExt::Is<Aspose::Slides::SmartArt::SmartArt>(shape))
{
// 将形状转换为 SmartArt
auto smartArt = System::DynamicCast_noexcept<ISmartArt>(shape);
Console::WriteLine(String::Format(u"Shape Name: {0}", smartArt->get_Name()));
// 检查 SmartArt 布局
/*if (smartArt->get_Layout() == SmartArtLayoutType::BasicBlockList)
{
Console::WriteLine(u"Do some thing here....");
}*/
}
}
使用 C++ 更改 SmartArt 形状的样式
访问 SmartArt 形状后,您可以轻松更改其样式。以下是使用 C++ 更改 SmartArt 形状样式的步骤。
- 使用 Presentation 类加载 PowerPoint 文件。
- 循环遍历形状。
- 如果形状的类型为 ISmartArt,则将其引用作为 ISmartArt 对象。
- 使用 ISmartArt->setColorStyle(SmartArtColorType value) 和 ISmartArt->setQuickStyle(SmartArtQuickStyleType value) 方法更改样式。
- 使用 Presentation->Save(System::String fname, Export::SaveFormat format) 方法保存演示文稿。
以下示例代码显示如何使用 C++ 更改 SmartArt 形状的样式。
// 文件路径
const String sourceFilePath = u"OutputDirectory\\CreateSmartArt_out.pptx";
const String outputFilePath = u"OutputDirectory\\ChangeSmartArt_out.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 循环遍历形状
for (auto shape : presentation->get_Slides()->idx_get(0)->get_Shapes())
{
// 检查形状是否为 SmartArt 类型
if (System::ObjectExt::Is<Aspose::Slides::SmartArt::SmartArt>(shape))
{
// 将形状转换为 SmartArt
auto smartArt = System::DynamicCast_noexcept<ISmartArt>(shape);
// 检查 SmartArt 风格
if (smartArt->get_QuickStyle() == SmartArtQuickStyleType::SimpleFill) {
// 更改 SmartArt 样式
smartArt->set_QuickStyle(SmartArtQuickStyleType::Cartoon);
}
// 检查 SmartArt 颜色类型
if (smartArt->get_ColorStyle() == SmartArtColorType::ColoredFillAccent1) {
// 更改 SmartArt 颜色类型
smartArt->set_ColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
// 保存演示文稿
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
获得免费许可证
为了在没有评估限制的情况下试用 API,您可以申请 免费的临时许可证。
结论
在本文中,您学习了如何使用 C++ 在 PowerPoint 演示文稿中创建 SmartArt 形状。此外,您还了解了如何使用 Aspose.Slides for C++ API 访问和更改 SmartArt 形状的样式。它是一个强大且功能丰富的 API,提供了许多用于处理 PowerPoint 文件的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。