Formas de presentación en grupo con Python vía Java
Visión general
Este artículo explica cómo trabajar con grupos de formas en Aspose.Slides. Muestra cómo añadir un grupo de formas a una diapositiva, colocar formas dentro de él y guardar la presentación actualizada. También demuestra cómo acceder a las formas almacenadas dentro de un grupo y leer su texto alternativo mediante getAlternativeText. Además, el artículo cubre brevemente capacidades relacionadas con los grupos de formas, como grupos anidados, orden Z y opciones de bloqueo.
Añadir un grupo de formas
Aspose.Slides permite trabajar con grupos de formas en diapositivas. Esta función ayuda a los desarrolladores a crear presentaciones más ricas. Aspose.Slides for Python via Java soporta la adición y acceso a grupos de formas. Puede poblar un grupo de formas con otras formas o acceder a sus propiedades. Para añadir un grupo de formas a una diapositiva usando Aspose.Slides for Python via Java:
- Crear una instancia de la clase Presentation.
- Obtener una referencia a una diapositiva por su índice.
- Añadir un grupo de formas a la diapositiva.
- Añadir formas al grupo de formas.
- Guardar la presentación modificada como archivo PPTX.
El siguiente ejemplo añade un grupo de formas a una diapositiva:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import NullableBool, Presentation, SaveFormat, ShapeFrame, ShapeType
# Instanciar la clase Presentation.
presentation = Presentation()
try:
# Obtener la primera diapositiva.
slide = presentation.getSlides().get_Item(0)
# Acceder a la colección de formas de la diapositiva.
slide_shapes = slide.getShapes()
# Añadir un grupo de formas a la diapositiva.
group_shape = slide_shapes.addGroupShape()
# Añadir formas dentro del grupo de formas.
group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 300, 100, 100, 100)
group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 500, 100, 100, 100)
group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 300, 300, 100, 100)
group_shape.getShapes().addAutoShape(ShapeType.Rectangle, 500, 300, 100, 100)
# Establecer el marco del grupo de formas.
group_frame = ShapeFrame(100, 300, 500, 40, NullableBool.False_, NullableBool.False_, 0)
group_shape.setFrame(group_frame)
# Escribir el archivo PPTX en disco.
presentation.save("GroupShape.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Acceder al texto alternativo
Esta sección muestra cómo acceder al texto alternativo de las formas dentro de un grupo en una diapositiva. Para acceder a este texto usando Aspose.Slides for Python via Java:
- Instanciar la clase Presentation que representa un archivo PPTX.
- Obtener una referencia a una diapositiva por su índice.
- Acceder a la colección de formas de la diapositiva.
- Acceder al grupo de formas.
- Leer el texto alternativo de sus formas mediante getAlternativeText.
El siguiente ejemplo accede al texto alternativo de las formas dentro de un grupo:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import GroupShape, Presentation
# Instanciar la clase Presentation que representa el archivo PPTX.
presentation = Presentation("AltText.pptx")
try:
# Obtener la primera diapositiva.
slide = presentation.getSlides().get_Item(0)
for i in range(slide.getShapes().size()):
# Acceder a una forma en la colección de formas de la diapositiva.
shape = slide.getShapes().get_Item(i)
if isinstance(shape, GroupShape):
# Acceder a las formas dentro del grupo.
for j in range(shape.getShapes().size()):
child_shape = shape.getShapes().get_Item(j)
# Leer el texto alternativo.
print(child_shape.getAlternativeText())
finally:
presentation.dispose()
Preguntas frecuentes
¿Se admite el agrupamiento anidado (un grupo dentro de otro grupo)?
Sí. GroupShape tiene un método getParentGroup que indica compatibilidad con jerarquías: un grupo puede ser hijo de otro grupo.
¿Cómo controlo el orden Z del grupo respecto a otros objetos en la diapositiva?
Utilice el método getZOrderPosition del objeto GroupShape para inspeccionar su posición en la pila de visualización.
¿Puedo impedir mover, editar o desagrupar?
Sí. Los bloqueos del grupo se exponen mediante getGroupShapeLock, lo que le permite restringir operaciones sobre el objeto.