Microsoft PowerPoint 使您能够向演示文稿添加形状。形状在显示数据流或显示流程的不同阶段等场景中很有用。您可以使用椭圆、线条、矩形等形状,并使用连接器将它们连接起来。您可能会发现自己必须以编程方式将形状添加到 PowerPoint 幻灯片中。为此,本文将教您如何使用 C++ 在 PowerPoint 演示文稿中处理形状。
- 用于在 PowerPoint 演示文稿中处理形状的 C++ API
- 将形状添加到 PowerPoint 幻灯片
- 将连接的形状添加到 PowerPoint 幻灯片
- 在 PowerPoint 幻灯片中克隆形状
- 使用 C++ 从 PowerPoint 幻灯片中删除形状
- 支持的 PowerPoint 形状
- 获得免费许可证
用于在 PowerPoint 演示文稿中处理形状的 C++ API
Aspose.Slides for C++ 是一个原生 C++ 库,支持创建、读取和操作 PowerPoint 文件。 API 还支持在 PowerPoint 演示文稿中使用形状。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Slides.Cpp
将形状添加到 PowerPoint 幻灯片
要添加形状,请使用 API 提供的 ISlide->getShapes()->AddAutoShape() 方法。以下是将形状添加到 PowerPoint 幻灯片的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用 Presentation->getSlides()->idxget (int32t index) 方法检索要添加形状的幻灯片。
- 使用 ISlide->getShapes()->AddAutoShape (ShapeType shapeType, float x, float y, float width, float height) 方法添加形状。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存演示文稿。
以下是使用 C++ 将形状添加到 PowerPoint 幻灯片的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddShapePresentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 获取第一张幻灯片
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 添加形状
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);
// 保存演示文件
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
将连接的形状添加到 PowerPoint 幻灯片
连接器可用于连接形状。为了创建连接器,您可以使用 ISlide->getShapes()->AddConnector() 方法。以下是将连接的形状添加到 PowerPoint 幻灯片的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用 Presentation->getSlides()->idxget (int32t index) 方法检索要添加形状的幻灯片。
- 使用 ISlide->getShapes()->AddAutoShape (ShapeType shapeType, float x, float y, float width, float height) 方法添加形状。
- 使用 ISlide->getShapes()->AddConnector (ShapeType shapeType, float x, float y, float width, float height) 方法添加连接器。
- 使用 IConnector->setStartShapeConnectedTo (System::SharedPtr) 将形状连接到连接器value) 和 IConnector->setEndShapeConnectedTo (System::SharedPtr值) 方法。
- 调用IConnector->Reroute()方法创建最短自动连接路径。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存演示文稿。
以下是使用 C++ 将连接的形状添加到 PowerPoint 幻灯片的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddConnectedShapesPresentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 获取第一张幻灯片
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 添加第一个形状
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);
// 添加第二个形状
SharedPtr<IAutoShape> rectangle = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 300, 100, 100);
// 添加连接器
SharedPtr<IConnector> connector = slide->get_Shapes()->AddConnector(ShapeType::BentConnector2, 0, 0, 10, 10);
// 用连接器连接形状
connector->set_StartShapeConnectedTo(ellipse);
connector->set_EndShapeConnectedTo(rectangle);
// 调用 reroute 设置形状之间的自动最短路径
connector->Reroute();
// 保存演示文件
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
在 PowerPoint 幻灯片中克隆形状
您还可以使用 Aspose.Slides for C++ API 克隆现有形状。要克隆形状,请使用 API 提供的 ShapeCollection->InsertClone() 方法。以下是将形状从一张幻灯片克隆到另一张幻灯片的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用 Presentation->getSlides()->idxget (int32t index) 方法检索源幻灯片。
- 使用 ISlide->getShapes() 方法访问源幻灯片的形状。
- 使用 ISlide->getShapes() 方法访问目标幻灯片的形状。
- 使用 IShapeCollection->InsertClone (int32t index, System::SharedPtr) 克隆形状sourceShape, float x, float y) 方法。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存演示文稿。
以下是使用 C++ 在 PowerPoint 幻灯片中克隆形状的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\ShapePresentation2.pptx";
const String outputFilePath = u"OutputDirectory\\CloneShapePresentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 访问第一张幻灯片
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 访问选定幻灯片的形状集合
SharedPtr<IShapeCollection> sourceShapes = slide->get_Shapes();
// 从目标幻灯片获取形状集合
SharedPtr<ISlide> destSlide = presentation->get_Slides()->idx_get(1);
SharedPtr<IShapeCollection> destShapes = destSlide->get_Shapes();
// 克隆形状
destShapes->InsertClone(0, sourceShapes->idx_get(1), 50, 150);
// 保存演示文件
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
使用 C++ 从 PowerPoint 幻灯片中删除形状
以下是从 PowerPoint 幻灯片中删除形状的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用 Presentation->getSlides()->idxget (int32t index) 方法从要删除形状的位置检索幻灯片。
- 通过使用 IShape->getAlternativeText() 方法匹配替代文本来找到所需的形状。
- 使用 ISlide->getShapes()->Remove (System::SharedPtr形状) 方法。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存演示文稿。
以下是使用 C++ 从 PowerPoint 幻灯片中删除形状的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\ShapePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\RemoveShapePresentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 访问第一张幻灯片
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
String alttext = u"User Defined";
int iCount = slide->get_Shapes()->get_Count();
for (int i = 0; i < iCount; i++)
{
// 访问形状
SharedPtr<Shape> ashape = DynamicCast<Aspose::Slides::Shape>(slide->get_Shapes()->idx_get(i));
if (String::Compare(ashape->get_AlternativeText(), alttext, StringComparison::Ordinal) == 0)
{
// 删除形状
slide->get_Shapes()->Remove(ashape);
}
}
// 保存演示文件
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
支持的 PowerPoint 形状
Aspose.Slides for C++ 支持多种形状供您使用。以下是一些受支持的形状的列表。
您可以通过查看 ShapeType 枚举值来查看支持的形状的完整列表。
获得免费许可证
您可以请求 免费的临时许可证 试用 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 在 PowerPoint 演示文稿中处理形状。具体来说,您已经学习了如何在 PowerPoint 幻灯片中添加、克隆和删除形状。此外,您还了解了如何使用连接器连接形状。除了处理形状之外,Aspose.Slides for C++ 还提供了许多附加功能来增强您的 PowerPoint 演示文稿。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。