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
- Agregar una forma a una diapositiva de PowerPoint
- Agregar formas conectadas a una diapositiva de PowerPoint
- Clonar formas en diapositivas de PowerPoint
- Quitar formas de las diapositivas de PowerPoint usando C++
- Formas de PowerPoint compatibles
- Obtenga una licencia gratis
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.
- En primer lugar, cargue la presentación de PowerPoint utilizando la clase Presentation.
- Recupere la diapositiva donde desea agregar la forma usando el método Presentation->getSlides()->idxget (int32t index).
- Agregue la forma usando el método ISlide->getShapes()->AddAutoShape (ShapeType shapeType, float x, float y, float width, float height).
- Finalmente, guarde la presentación usando el método Presentation->Save (System::String name, Export::SaveFormat format).
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 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.
- En primer lugar, cargue la presentación de PowerPoint utilizando la clase Presentation.
- Recupere la diapositiva donde desea agregar las formas utilizando el método Presentation->getSlides()->idxget (int32t index).
- Agregue las formas usando el método ISlide->getShapes()->AddAutoShape (ShapeType shapeType, float x, float y, float width, float height).
- Agregue el conector usando el método ISlide->getShapes()->AddConnector (ShapeType shapeType, float x, float y, float width, float height).
- Conecte las formas al conector usando IConnector->setStartShapeConnectedTo (System::SharedPtr value) y IConnector->setEndShapeConnectedTo (System::SharedPtr valor) métodos.
- Llame al método IConnector->Reroute() para crear la ruta de conexión automática más corta.
- Finalmente, guarde la presentación usando el método Presentation->Save (System::String name, Export::SaveFormat format).
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);
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.
- En primer lugar, cargue la presentación de PowerPoint utilizando la clase Presentation.
- Recupere la diapositiva de origen usando el método Presentation->getSlides()->idxget (int32t index).
- Acceda a las formas de la diapositiva de origen usando el método ISlide->getShapes().
- Acceda a las formas de la diapositiva de destino utilizando el método ISlide->getShapes().
- Clone la forma usando IShapeCollection->InsertClone (índice int32t, System::SharedPtr sourceShape, float x, float y) método.
- Finalmente, guarde la presentación usando el método Presentation->Save (System::String name, Export::SaveFormat format).
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);
Quitar formas de las diapositivas de PowerPoint usando C++
Los siguientes son los pasos para eliminar formas de las diapositivas de PowerPoint.
- En primer lugar, cargue la presentación de PowerPoint utilizando la clase Presentation.
- Recupere la diapositiva de donde desea eliminar la forma usando el método Presentation->getSlides()->idxget (int32t index).
- Encuentre la forma requerida haciendo coincidir el texto alternativo usando el método IShape->getAlternativeText().
- Quite la forma usando ISlide->getShapes()->Remove (System::SharedPtr forma) método.
- Finalmente, guarde la presentación usando el método Presentation->Save (System::String name, Export::SaveFormat format).
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.