Gestionar la forma SmartArt
Crear forma SmartArt
Aspose.Slides para PHP a través de Java ha proporcionado una API para crear formas SmartArt. Para crear una forma SmartArt en una diapositiva, siga los pasos a continuación:
- Cree una instancia de la clase Presentation.
- Obtenga la referencia de una diapositiva utilizando su índice.
- Agregue una forma SmartArt estableciendo su LayoutType.
- Guarde la presentación modificada como un archivo PPTX.
# Instanciar clase Presentation
$pres = new Presentation();
try {
# Obtener la primera diapositiva
$slide = $pres->getSlides()->get_Item(0);
# Agregar forma Smart Art
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# Guardando presentación
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Figura: Forma SmartArt añadida a la diapositiva |
Acceder a la forma SmartArt en la diapositiva
El siguiente código se utilizará para acceder a las formas SmartArt agregadas en la diapositiva de la presentación. En el código de ejemplo, recorreremos cada forma dentro de la diapositiva y verificaremos si es una forma de SmartArt. Si la forma es del tipo SmartArt, la convertiremos a una instancia de SmartArt.
# Cargar la presentación deseada
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Recorrer cada forma dentro de la primera diapositiva
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Verificar si la forma es del tipo SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Convertir la forma a SmartArtEx
$smart = $shape;
echo("Nombre de la forma:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Acceder a la forma SmartArt con un tipo de diseño particular
El siguiente código de ejemplo ayudará a acceder a la forma de SmartArt con un LayoutType particular: tenga en cuenta que no puede cambiar el LayoutType del SmartArt, ya que es de solo lectura y se establece solo cuando se agrega la forma de SmartArt.
- Cree una instancia de la clase Presentation y cargue la presentación con la forma SmartArt.
- Obtenga la referencia de la primera diapositiva utilizando su índice.
- Recorra cada forma dentro de la primera diapositiva.
- Verifique si la forma es del tipo SmartArt y convierta la forma seleccionada a SmartArt si es SmartArt.
- Verifique la forma SmartArt con un LayoutType particular y realice lo que sea necesario hacer a continuación.
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# Recorrer cada forma dentro de la primera diapositiva
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# Verificar si la forma es del tipo SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Convertir la forma a SmartArtEx
$smart = $shape;
# Verificando el diseño de SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Hacer algo aquí....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Cambiar el estilo de la forma SmartArt
En este ejemplo, aprenderemos a cambiar el estilo rápido para cualquier forma SmartArt.
- Cree una instancia de la clase Presentation y cargue la presentación con la forma SmartArt.
- Obtenga la referencia de la primera diapositiva utilizando su índice.
- Recorra cada forma dentro de la primera diapositiva.
- Verifique si la forma es del tipo SmartArt y convierta la forma seleccionada a SmartArt si es SmartArt.
- Encuentre la forma SmartArt con un estilo particular.
- Establezca el nuevo estilo para la forma SmartArt.
- Guarde la presentación.
# Instanciar clase Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Obtener la primera diapositiva
$slide = $pres->getSlides()->get_Item(0);
# Recorrer cada forma dentro de la primera diapositiva
foreach($slide->getShapes() as $shape) {
# Verificar si la forma es del tipo SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Convertir la forma a SmartArtEx
$smart = $shape;
# Verificando el estilo de SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# Cambiando el estilo de SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# Guardando presentación
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Figura: Forma SmartArt con estilo cambiado |
Cambiar el estilo de color de la forma SmartArt
En este ejemplo, aprenderemos a cambiar el estilo de color para cualquier forma SmartArt. En el siguiente código de ejemplo se accederá a la forma SmartArt con un estilo de color particular y se cambiará su estilo.
- Cree una instancia de la clase Presentation y cargue la presentación con la forma SmartArt.
- Obtenga la referencia de la primera diapositiva utilizando su índice.
- Recorra cada forma dentro de la primera diapositiva.
- Verifique si la forma es del tipo SmartArt y convierta la forma seleccionada a SmartArt si es SmartArt.
- Encuentre la forma SmartArt con un estilo de color particular.
- Establezca el nuevo estilo de color para la forma SmartArt.
- Guarde la presentación.
# Instanciar clase Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# Obtener la primera diapositiva
$slide = $pres->getSlides()->get_Item(0);
# Recorrer cada forma dentro de la primera diapositiva
foreach($slide->getShapes() as $shape) {
# Verificar si la forma es del tipo SmartArt
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# Convertir la forma a SmartArtEx
$smart = $shape;
# Verificando el tipo de color de SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# Cambiando el tipo de color de SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# Guardando presentación
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Figura: Forma SmartArt con estilo de color cambiado |