Trabajando con Formas en presentaciones de PowerPoint usando C++

Microsoft PowerPoint le brinda la posibilidad de agregar formas a sus presentaciones. Las formas pueden ser útiles en escenarios como mostrar el flujo de datos o mostrar diferentes fases de un proceso. Puede usar formas como elipses, líneas, rectángulos, etc., y conectarlas mediante conectores. Es posible que se encuentre en escenarios en los que tenga que agregar formas a las diapositivas de PowerPoint mediante programación. Con ese fin, este artículo le enseñará cómo trabajar con formas en presentaciones de PowerPoint usando C++.

API de C++ para trabajar con formas en presentaciones de PowerPoint

Aspose.Slides for C++ es una biblioteca nativa de C++ que admite la creación, lectura y manipulación de archivos de PowerPoint. La API también admite trabajar con formas en presentaciones de PowerPoint. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Slides.Cpp

Agregar una forma a una diapositiva de PowerPoint

Para agregar una forma, use el método ISlide->getShapes()->AddAutoShape() proporcionado por la API. Los siguientes son los pasos para agregar una forma a una diapositiva de PowerPoint.

El siguiente es el código de muestra para agregar una forma a una diapositiva de PowerPoint usando C++.

// Rutas de archivo
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddShapePresentation.pptx";

// Cargue el archivo de presentación
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);

// Obtener la primera diapositiva
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Agrega la forma
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);

// Guardar archivo de presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Agregar forma a la diapositiva de PowerPoint

Agregar formas conectadas a una diapositiva de PowerPoint

Los conectores se pueden utilizar para conectar formas. Para crear un conector, puede usar el método ISlide->getShapes()->AddConnector(). Los siguientes son los pasos para agregar formas conectadas a una diapositiva de PowerPoint.

El siguiente es el código de muestra para agregar formas conectadas a una diapositiva de PowerPoint usando C++.

// Rutas de archivo
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddConnectedShapesPresentation.pptx";

// Cargue el archivo de presentación
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);

// Obtener la primera diapositiva
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Agregar la primera forma
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);

// Agregar la segunda forma
SharedPtr<IAutoShape> rectangle = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 300, 100, 100);

// Agregar el conector
SharedPtr<IConnector> connector = slide->get_Shapes()->AddConnector(ShapeType::BentConnector2, 0, 0, 10, 10);

// Unir las formas con el conector.
connector->set_StartShapeConnectedTo(ellipse);
connector->set_EndShapeConnectedTo(rectangle);

// Redirección de llamadas para establecer la ruta más corta automática entre formas
connector->Reroute();

// Guardar archivo de presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Agregar formas conectadas a la diapositiva de PowerPoint

Clonar formas en diapositivas de PowerPoint

También puede clonar formas existentes utilizando Aspose.Slides for C++. Para clonar una forma, utilice el método ShapeCollection->InsertClone() proporcionado por la API. Los siguientes son los pasos para clonar formas de una diapositiva a otra.

El siguiente es el código de muestra para clonar formas en diapositivas de PowerPoint usando C++.

// Rutas de archivos
const String sourceFilePath = u"SourceDirectory\\ShapePresentation2.pptx";
const String outputFilePath = u"OutputDirectory\\CloneShapePresentation.pptx";

// Cargue el archivo de presentación
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);

// Acceder a la primera diapositiva
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Acceder a la colección de formas para la diapositiva seleccionada
SharedPtr<IShapeCollection> sourceShapes = slide->get_Shapes();

// Obtener la colección de formas de la diapositiva de destino
SharedPtr<ISlide> destSlide = presentation->get_Slides()->idx_get(1);
SharedPtr<IShapeCollection> destShapes = destSlide->get_Shapes();

// forma de clon
destShapes->InsertClone(0, sourceShapes->idx_get(1), 50, 150);

// Guardar archivo de presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Clonar formas en diapositivas de PowerPoint

Quitar formas de las diapositivas de PowerPoint usando C++

Los siguientes son los pasos para eliminar formas de las diapositivas de PowerPoint.

El siguiente es el código de muestra para eliminar formas de las diapositivas de PowerPoint usando C++.

// Rutas de archivos
const String sourceFilePath = u"SourceDirectory\\ShapePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\RemoveShapePresentation.pptx";

// Cargue el archivo de presentación
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);

// Acceder a la primera diapositiva
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++)
{
	// Accede a la forma
	SharedPtr<Shape> ashape = DynamicCast<Aspose::Slides::Shape>(slide->get_Shapes()->idx_get(i));

	if (String::Compare(ashape->get_AlternativeText(), alttext, StringComparison::Ordinal) == 0)
	{
		// Quitar la forma
		slide->get_Shapes()->Remove(ashape);
	}
}

// Guardar archivo de presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Formas de PowerPoint compatibles

Aspose.Slides for C++ admite muchas formas con las que puede trabajar. La siguiente es una lista de algunas de las formas admitidas.

Puede ver la lista completa de formas admitidas consultando los valores de enumeración ShapeType.

Obtenga una licencia gratis

Puede solicitar una licencia temporal gratuita para probar la API sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a trabajar con formas en presentaciones de PowerPoint usando C++. Específicamente, ha aprendido a agregar, clonar y eliminar formas de las diapositivas de PowerPoint. Además, has visto cómo conectar formas usando un conector. Además de trabajar con formas, Aspose.Slides for C++ ofrece muchas funciones adicionales para mejorar sus presentaciones de PowerPoint. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también