Работа с фигурами в PowerPoint на Python

В презентациях PowerPoint используются различные типы диаграмм, чтобы сделать содержание более подробным. Эти диаграммы состоят из различных форм, таких как эллипсы, линии, прямоугольники и соединители. В этой статье вы узнаете, как программно добавлять, клонировать и удалять фигуры на слайдах PowerPoint в Python.

Библиотека Python для работы с фигурами PowerPoint

Aspose.Slides for Python через .NET предназначен для создания презентаций PowerPoint и управления ими из приложений Python. Мы будем использовать эту библиотеку для работы с фигурами на слайдах PowerPoint. Вы можете установить его из PyPI с помощью следующей команды pip.

> pip install aspose.slides

Типы фигур в PowerPoint

Вы можете создавать различные фигуры в презентациях PowerPoint, используя Aspose.Slides для Python. К наиболее часто используемым формам относятся:

Добавить фигуру в слайды PowerPoint в Python

Для добавления любой формы, включая эллипс, линию, прямоугольник, используется метод addautoshape(ShapeType, Single, Single, Single, Single), которому можно передать тип фигуры и другие необходимые параметры. Перечисление ShapeType используется для указания типа фигуры. Ниже приведены шаги, чтобы добавить фигуру к слайду PowerPoint в Python.

  1. Создайте презентацию или загрузите существующую с помощью класса Presentation.
  2. Получите ссылку на нужный слайд из коллекции Presentation.slides.
  3. Добавьте эллипс (или любую другую фигуру), используя метод addautoshape(ShapeType, Single, Single, Single, Single).
  4. Сохраните презентацию с помощью метода Presentation.save(String, SaveFormat).

В следующем примере кода показано, как добавить фигуру на слайд PowerPoint в Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create a new presentation
with slides.Presentation() as pres:
    # Get the first slide
    sld = pres.slides[0]

    # Add auto shape of ellipse type
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Apply some formatting to ellipse shape
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Apply some formatting to the line of Ellipse
    shp.line_format.fill_format.fill_type = slides.FillType.SOLID
    shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
    shp.line_format.width = 5

    # Save the PPTX file to disk
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Ниже показан эллипс, который мы добавили, используя приведенный выше пример кода.

Добавить фигуру в PowerPoint PPT на Python

Соедините фигуры PowerPoint с соединителем в Python

На диаграммах различные фигуры соединяются друг с другом с помощью линии, называемой соединителем. Соединитель может быть прямой или изогнутой линией. Давайте посмотрим, как добавить соединитель между двумя фигурами PowerPoint в Python.

  1. Сначала создайте экземпляр класса Presentation для создания или загрузки презентации.
  2. Затем получите ссылку на слайд, используя коллекцию Presentation.slides.
  3. Добавьте две фигуры так же, как вы добавили в предыдущем разделе, и получите их ссылки.
  4. Создайте соединитель, используя метод addconnector(ShapeType, Single, Single, Single, Single).
  5. Соедините фигуры с помощью свойств Connector.startshapeconnectedto и Connector.endshapeconnectedto.
  6. Вызовите метод Connector.reroute(), чтобы создать кратчайший путь автоматического подключения.
  7. Наконец, сохраните презентацию с помощью метода Presentation.save(string, SaveFormat).

В следующем примере кода показано, как соединить фигуры на слайде PowerPoint в Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation
with slides.Presentation() as presentation:
    # Access shapes collection for selected slide
    shapes = presentation.slides[0].shapes

    # Add ellipse
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Add auto shape rectangle
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Add connector to connect shapes
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Join shapes using connector
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Call reroute to set the automatic shortest path between shapes
    connector.reroute()

    # Save presenation
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Ниже приведен снимок экрана презентации после соединения фигур с помощью соединителя.

Соедините фигуры PowerPoint с соединителем в Python

Клонирование фигур PowerPoint в Python

Иногда вы предпочитаете клонировать фигуры вместо создания новой. Для этого Aspose.Slides поддерживает клонирование фигур. Ниже приведены шаги для клонирования фигуры в PowerPoint с помощью Python.

  1. Сначала используйте класс Presentation для загрузки файла презентации.
  2. Получите ссылку на слайд из коллекции Presentation.slides.
  3. Получите доступ к фигурам исходного и целевого слайдов из коллекции ISlide.shapes.
  4. Клонируйте фигуры из коллекции фигур исходного слайда на целевой слайд с помощью метода addclone().
  5. Наконец, сохраните обновленный файл презентации.

В следующем примере кода показано, как клонировать фигуры на слайдах PowerPoint в Python.

import aspose.slides as slides

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Access shapes of the source slide
    sourceShapes = presentation.slides[0].shapes

    # Add a new blank slide
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Access shapes of destination slide
    destShapes = destSlide.shapes

    # Clone shapes
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Save file
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

Удалить фигуры из слайдов PowerPoint в Python

Вы также можете удалить фигуры из презентаций PowerPoint, выполнив следующие действия.

  1. Создайте экземпляр класса Presentation для загрузки файла PPT/PPTX.
  2. Получите доступ к нужному слайду из коллекции Presentation.slides.
  3. Отфильтруйте нужную фигуру с помощью определенного текста, используя свойство IShape.alternativetext.
  4. Удалите фигуру с помощью метода ISlide.shapes.remove(IShape).
  5. Наконец, сохраните обновленный файл презентации.

В следующем примере кода показано, как удалить фигуры из слайда PowerPoint в Python.

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Get the first slide
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Loop through shapes
    for i in range(len(sld.shapes)):
        # Find shape by alternative text
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Save file
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию для использования Aspose.Slides for Python без ограничений на пробную версию.

Вывод

MS PowerPoint поддерживает ряд форм для создания различных типов диаграмм, таких как блок-схемы. В этой статье мы рассмотрели, как создавать фигуры PowerPoint, такие как эллипсы, прямоугольники, и соединять их с помощью соединителей в Python. Кроме того, вы узнали, как программно клонировать и удалять фигуры в слайдах PowerPoint. Вы можете узнать больше об Aspose.Slides для Python, используя документацию. Кроме того, вы можете сообщить нам о своих вопросах через наш форум.

Смотрите также