Работа с фигурами в презентациях PowerPoint с использованием C++

Microsoft PowerPoint предоставляет вам возможность добавлять фигуры в презентации. Фигуры могут быть полезны в таких сценариях, как отображение потока данных или отображение различных фаз процесса. Вы можете использовать такие фигуры, как эллипсы, линии, прямоугольники и т. д., и соединять их с помощью соединителей. Вы можете столкнуться с ситуациями, когда вам нужно программно добавлять фигуры на слайды PowerPoint. С этой целью эта статья научит вас работать с фигурами в презентациях PowerPoint с помощью C++.

C++ API для работы с фигурами в презентациях PowerPoint

Aspose.Slides for C++ — это собственная библиотека C++, которая поддерживает создание, чтение и управление файлами PowerPoint. API также поддерживает работу с фигурами в презентациях PowerPoint. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.Slides.Cpp

Добавить фигуру в слайд PowerPoint

Чтобы добавить фигуру, используйте метод ISlide->getShapes()->AddAutoShape(), предоставляемый API. Ниже приведены шаги, чтобы добавить фигуру на слайд PowerPoint.

Ниже приведен пример кода для добавления фигуры на слайд PowerPoint с помощью C++.

// Пути к файлам
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

Добавление связанных фигур в слайд PowerPoint

Соединители можно использовать для соединения фигур. Чтобы создать коннектор, вы можете использовать метод ISlide->getShapes()->AddConnector(). Ниже приведены шаги по добавлению связанных фигур на слайд PowerPoint.

Ниже приведен пример кода для добавления связанных фигур на слайд PowerPoint с помощью C++.

// Пути к файлам
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);

// Вызов перенаправления, чтобы установить автоматический кратчайший путь между фигурами
connector->Reroute();

// Сохранить файл презентации
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Добавьте связанные фигуры в слайд PowerPoint

Клонирование фигур в слайдах PowerPoint

Вы также можете клонировать существующие фигуры с помощью Aspose.Slides for C++ API. Чтобы клонировать фигуру, используйте метод ShapeCollection->InsertClone(), предоставляемый API. Ниже приведены шаги для клонирования фигур с одного слайда на другой.

Ниже приведен пример кода для клонирования фигур на слайдах PowerPoint с помощью C++.

// Пути к файлам
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);
Клонирование фигур в слайдах PowerPoint

Удаление фигур из слайдов PowerPoint с помощью C++

Ниже приведены шаги по удалению фигур из слайдов PowerPoint.

Ниже приведен пример кода для удаления фигур со слайдов PowerPoint с помощью C++.

// Пути к файлам
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 без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как работать с фигурами в презентациях PowerPoint с помощью C++. В частности, вы узнали, как добавлять, клонировать и удалять фигуры из слайдов PowerPoint. Кроме того, вы видели, как соединять фигуры с помощью соединителя. Помимо работы с фигурами, Aspose.Slides for C++ предоставляет множество дополнительных функций для улучшения ваших презентаций PowerPoint. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также