Добавить линейные фигуры в презентации на JavaScript

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

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

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

В примере ниже мы добавили линию на первый слайд презентации.

// Создать экземпляр класса PresentationEx, представляющего файл PPTX
var pres = new aspose.slides.Presentation();
try {
    // Получить первый слайд
    var sld = pres.getSlides().get_Item(0);
    // Добавить AutoShape типа line
    sld.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0);
    // Записать PPTX на диск
    pres.save("LineShape.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

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

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

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его Index.
  • Добавьте AutoShape типа Line с помощью метода addAutoShape объекта ShapeCollection.
  • Установите Line Style в один из стилей, предлагаемых Aspose.Slides for Node.js via Java.
  • Установите ширину линии.
  • Установите Dash Style линии в один из стилей, предлагаемых Aspose.Slides for Node.js via Java.
  • Установите Arrow Head Style и Length начальной точки линии.
  • Установите Arrow Head Style и Length конечной точки линии.
  • Сохраните изменённую презентацию как файл PPTX.
// Создать экземпляр класса PresentationEx, представляющего файл PPTX
var pres = new aspose.slides.Presentation();
try {
    // Получить первый слайд
    var sld = pres.getSlides().get_Item(0);
    // Добавить AutoShape типа line
    var shp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0);
    // Применить некоторое форматирование к линии
    shp.getLineFormat().setStyle(aspose.slides.LineStyle.ThickBetweenThin);
    shp.getLineFormat().setWidth(10);
    shp.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot);
    shp.getLineFormat().setBeginArrowheadLength(aspose.slides.LineArrowheadLength.Short);
    shp.getLineFormat().setBeginArrowheadStyle(aspose.slides.LineArrowheadStyle.Oval);
    shp.getLineFormat().setEndArrowheadLength(aspose.slides.LineArrowheadLength.Long);
    shp.getLineFormat().setEndArrowheadStyle(aspose.slides.LineArrowheadStyle.Triangle);
    shp.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    shp.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.Maroon));
    // Записать PPTX на диск
    pres.save("LineShape.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

FAQ

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

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

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

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

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

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