Управление графикой SmartArt в презентациях с помощью Python
Создание фигур SmartArt
Aspose.Slides for Python via .NET позволяет добавлять пользовательские фигуры SmartArt на слайды с нуля. API упрощает это. Чтобы добавить фигуру SmartArt на слайд:
- Создайте экземпляр класса Presentation
- Получите целевой слайд по его индексу.
- Добавьте фигуру SmartArt, указав тип её макета.
- Сохраните изменённую презентацию в файл 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 изменить нельзя — он доступен только для чтения и задаётся при создании фигуры.
- Создайте экземпляр Presentation и загрузите презентацию, содержащую фигуру 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):
# Проверить тип макета SmartArt.
if shape.layout == smartart.SmartArtLayoutType.BASIC_BLOCK_LIST:
print("Do something here...")
Изменение стиля фигуры SmartArt
Следующий пример показывает, как найти фигуры SmartArt и изменить их стиль:
- Создайте Presentation и загрузите файл, содержащий фигуру(и) 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):
# Проверить стиль 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 с указанным цветовым стилем и обновляет её.
- Создайте экземпляр класса Presentation и загрузите презентацию, содержащую фигуру(и) SmartArt.
- Получите ссылку на первый слайд по индексу.
- Переберите каждую фигуру на первом слайде.
- Проверьте, является ли фигура объектом 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):
# Проверить тип цвета.
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, с набором опций качества и совместимости.