Добавление линейных фигур в презентации на Python через Java

Обзор

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

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

Создать простую линию

Чтобы добавить простую линию на выбранный слайд презентации, выполните следующие шаги:

  • Создайте экземпляр класса Presentation .
  • Получите ссылку на слайд по его индексу.
  • Добавьте линейную фигуру с помощью метода addAutoShape объекта ShapeCollection .
  • Запишите изменённую презентацию в файл PPTX.

Следующий пример добавляет линию на первый слайд презентации:

import jpype
import asposeslides

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

from asposeslides.api import Presentation, SaveFormat, ShapeType

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

    # Добавьте линейную фигуру.
    slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0)

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

Создать линию со стрелкой

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

  • Создайте экземпляр класса Presentation .
  • Получите ссылку на слайд по его индексу.
  • Добавьте линейную фигуру с помощью метода addAutoShape объекта ShapeCollection .
  • Установите line style в один из стилей, предлагаемых Aspose.Slides for Python via Java.
  • Установите ширину линии.
  • Установите dash style в один из стилей, предлагаемых Aspose.Slides for Python via Java.
  • Установите arrowhead style и length в начале линии.
  • Установите arrowhead style и length в конце линии.
  • Запишите изменённую презентацию в файл PPTX.
import jpype
import asposeslides

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

from asposeslides.api import FillType, LineArrowheadLength, LineArrowheadStyle, LineDashStyle, LineStyle, Presentation, PresetColor, SaveFormat, ShapeType

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

    # Добавьте линейную фигуру.
    line = slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0)

    # Примените форматирование к линии.
    line_format = line.getLineFormat()
    line_format.setStyle(LineStyle.ThickBetweenThin)
    line_format.setWidth(10)

    line_format.setDashStyle(LineDashStyle.DashDot)

    line_format.setBeginArrowheadLength(LineArrowheadLength.Short)
    line_format.setBeginArrowheadStyle(LineArrowheadStyle.Oval)

    line_format.setEndArrowheadLength(LineArrowheadLength.Long)
    line_format.setEndArrowheadStyle(LineArrowheadStyle.Triangle)

    line_format.getFillFormat().setFillType(FillType.Solid)
    line_format.getFillFormat().getSolidFillColor().setPresetColor(PresetColor.Maroon)

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

Вопросы и ответы

Можно ли преобразовать обычную линию в соединитель, чтобы она «прилипала» к фигурам?

Нет. Обычная линия (это AutoShape типа Line) не превращается автоматически в соединитель. Чтобы она «прилипала» к фигурам, используйте специализированный тип Connector и соответствующие API для соединений.

Что делать, если свойства линии наследуются из темы и сложно определить окончательные значения?

Прочитайте эффективные свойства линии и её заливки — они уже учитывают наследование и стили темы.

Можно ли заблокировать линию от редактирования (перемещения, изменения размера)?

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