Групповые фигуры презентаций в Python через Java

Обзор

В этой статье объясняется, как работать с групповыми фигурами в Aspose.Slides. Показано, как добавить групповую фигуру на слайд, разместить внутри неё другие фигуры и сохранить обновлённую презентацию. Также демонстрируется, как получить доступ к фигурам, хранящимся внутри группы, и прочитать их альтернативный текст с помощью getAlternativeText. Кроме того, статья кратко охватывает связанные возможности групповых фигур, такие как вложенные группы, порядок Z и параметры блокировки.

Добавить групповую фигуру

Aspose.Slides поддерживает работу с групповыми фигурами на слайдах. Эта возможность помогает разработчикам создавать более насыщенные презентации. Aspose.Slides for Python via Java поддерживает добавление и доступ к групповым фигурам. Вы можете заполнить групповую фигуру другими фигурами или получить доступ к её свойствам. Чтобы добавить групповую фигуру на слайд с помощью Aspose.Slides for Python via Java:

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте групповую фигуру на слайд.
  4. Добавьте фигуры в групповую фигуру.
  5. Сохраните изменённую презентацию как файл PPTX.

Ниже приведён пример, который добавляет групповую фигуру на слайд:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import NullableBool, Presentation, SaveFormat, ShapeFrame, ShapeType

# Создать экземпляр класса Presentation.
presentation = Presentation()
try:
    # Получить первый слайд.
    slide = presentation.getSlides().get_Item(0)

    # Получить коллекцию фигур слайда.
    slide_shapes = slide.getShapes()

    # Добавить групповую фигуру на слайд.
    group_shape = slide_shapes.addGroupShape()

    # Добавить фигуры внутри групповой фигуры.
    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)

    # Установить кадр (frame) групповой фигуры.
    group_frame = ShapeFrame(100, 300, 500, 40, NullableBool.False_, NullableBool.False_, 0)
    group_shape.setFrame(group_frame)

    # Записать файл PPTX на диск.
    presentation.save("GroupShape.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Доступ к альтернативному тексту

В этом разделе показано, как получить доступ к альтернативному тексту фигур внутри группы на слайде. Чтобы получить этот текст с помощью Aspose.Slides for Python via Java:

  1. Создайте экземпляр класса Presentation, представляющего файл PPTX.
  2. Получите ссылку на слайд по его индексу.
  3. Получите доступ к коллекции фигур слайда.
  4. Получите доступ к групповой фигуре.
  5. Прочитайте альтернативный текст её фигур с помощью getAlternativeText.

Ниже приведён пример, который получает альтернативный текст фигур внутри группы:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import GroupShape, Presentation

# Создать экземпляр класса Presentation, представляющего файл PPTX.
presentation = Presentation("AltText.pptx")
try:
    # Получить первый слайд.
    slide = presentation.getSlides().get_Item(0)

    for i in range(slide.getShapes().size()):
        # Получить доступ к фигуре в коллекции фигур слайда.
        shape = slide.getShapes().get_Item(i)

        if isinstance(shape, GroupShape):
            # Получить доступ к фигурам внутри группы.
            for j in range(shape.getShapes().size()):
                child_shape = shape.getShapes().get_Item(j)

                # Прочитать альтернативный текст.
                print(child_shape.getAlternativeText())
finally:
    presentation.dispose()

FAQ

Поддерживается ли вложенная группировка (группа внутри группы)?

Да. У GroupShape есть метод getParentGroup, который указывает на поддержку иерархии: группа может быть дочерней по отношению к другой группе.

Как контролировать порядок Z группы относительно других объектов на слайде?

Используйте метод getZOrderPosition объекта GroupShape, чтобы проверить его позицию в стеке отображения.

Можно ли запретить перемещение, редактирование или разгруппировку?

Да. Блокировки группы доступны через getGroupShapeLock, что позволяет ограничить операции с объектом.