Управление графикой SmartArt в презентациях с помощью Python

Создание фигур SmartArt

Aspose.Slides for Python via .NET позволяет добавлять пользовательские фигуры SmartArt на слайды с нуля. API упрощает это. Чтобы добавить фигуру SmartArt на слайд:

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

# Создать экземпляр класса Presentation.
with slides.Presentation() as presentation:
    # Получить слайд презентации.
    slide = presentation.slides[0]
    # Добавить фигуру SmartArt.
    smart_art = slide.shapes.add_smart_art(0, 0, 400, 400, smartart.SmartArtLayoutType.BASIC_BLOCK_LIST)
    # Сохранить презентацию на диск.
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Доступ к фигурам SmartArt на слайдах

Следующий код демонстрирует, как получить доступ к фигурам SmartArt на слайде. Пример перебирает каждую фигуру на слайде и проверяет, является ли она объектом SmartArt.

import aspose.slides as slides
import aspose.slides.smartart as smartart

# Загрузить файл презентации.
with slides.Presentation("SmartArt.pptx") as presentation:
    # Перебрать каждую фигуру на первом слайде.
    for shape in presentation.slides[0].shapes:
        # Проверить, является ли фигура SmartArt.
        if isinstance(shape, smartart.SmartArt):
            # Вывести имя фигуры.
            print("Shape name:", shape.name)

Доступ к фигурам SmartArt с указанным типом макета

Следующий пример показывает, как получить доступ к фигуре SmartArt с указанным типом макета. Обратите внимание, что тип макета SmartArt изменить нельзя — он доступен только для чтения и задаётся при создании фигуры.

  1. Создайте экземпляр Presentation и загрузите презентацию, содержащую фигуру SmartArt.
  2. Получите ссылку на первый слайд по индексу.
  3. Переберите все фигуры на первом слайде.
  4. Проверьте, является ли фигура объектом SmartArt.
  5. Если тип макета фигуры SmartArt соответствует нужному, выполните требуемые действия.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # Перебрать каждую фигуру на первом слайде.
    for shape in presentation.slides[0].shapes:
        # Проверить, является ли фигура SmartArt.
        if isinstance(shape, smartart.SmartArt):
            # Проверить тип макета SmartArt.
            if shape.layout == smartart.SmartArtLayoutType.BASIC_BLOCK_LIST:
                print("Do something here...")

Изменение стиля фигуры SmartArt

Следующий пример показывает, как найти фигуры SmartArt и изменить их стиль:

  1. Создайте Presentation и загрузите файл, содержащий фигуру(и) SmartArt.
  2. Получите ссылку на первый слайд по индексу.
  3. Переберите каждую фигуру на первом слайде.
  4. Найдите фигуру SmartArt с указанным стилем.
  5. Назначьте новый стиль фигуре SmartArt.
  6. Сохраните презентацию.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # Перебрать каждую фигуру на первом слайде.
    for shape in presentation.slides[0].shapes:
        # Проверить, является ли фигура SmartArt.
        if isinstance(shape, smartart.SmartArt):
            # Проверить стиль SmartArt.
            if shape.quick_style == smartart.SmartArtQuickStyleType.SIMPLE_FILL:
                # Изменить стиль SmartArt.
                smart.quick_style = smartart.SmartArtQuickStyleType.CARTOON
    # Сохранить презентацию.
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Изменение цветового стиля фигур SmartArt

Этот пример показывает, как изменить цветовой стиль фигуры SmartArt. Пример кода находит фигуру SmartArt с указанным цветовым стилем и обновляет её.

  1. Создайте экземпляр класса Presentation и загрузите презентацию, содержащую фигуру(и) SmartArt.
  2. Получите ссылку на первый слайд по индексу.
  3. Переберите каждую фигуру на первом слайде.
  4. Проверьте, является ли фигура объектом SmartArt.
  5. Найдите фигуру SmartArt с указанным цветовым стилем.
  6. Установите новый цветовой стиль для этой фигуры SmartArt.
  7. Сохраните презентацию.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation("SmartArt.pptx") as presentation:
    # Перебрать каждую фигуру на первом слайде.
    for shape in presentation.slides[0].shapes:
        # Проверить, является ли фигура SmartArt.
        if isinstance(shape, smartart.SmartArt):
            # Проверить тип цвета.
            if shape.color_style == smartart.SmartArtColorType.COLORED_FILL_ACCENT1:
                # Изменить тип цвета.
                shape.color_style = smartart.SmartArtColorType.COLORFUL_ACCENT_COLORS
    # Сохранить презентацию.
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Часто задаваемые вопросы

Могу ли я анимировать SmartArt как единый объект?

Да. SmartArt является фигурой, поэтому вы можете применять стандартные анимации через API анимаций (вход, выход, акцент, траектории движения) так же, как и к другим фигурам.

Как найти конкретный SmartArt на слайде, если я не знаю его внутренний ID?

Установите и используйте альтернативный текст (AltText) и ищите фигуру по этому значению — это рекомендованный способ найти нужную фигуру.

Могу ли я группировать SmartArt с другими фигурами?

Да. Вы можете группировать SmartArt с другими фигурами (изображения, таблицы и т.д.) и затем управлять группой.

Как получить изображение конкретного SmartArt (например, для превью или отчёта)?

Экспортируйте миниатюру/изображение фигуры; библиотека может рисовать отдельные фигуры в растровые файлы (PNG/JPG/TIFF).

Сохранится ли внешний вид SmartArt при конвертации всей презентации в PDF?

Да. Рендеринг‑движок обеспечивает высокую точность при экспорте в PDF, с набором опций качества и совместимости.