Добавление линейных фигур в презентации на Java
Создать простую линию
Чтобы добавить простую линию на выбранный слайд презентации, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд, используя его Index.
- Добавьте AutoShape типа Line, используя метод addAutoShape , предоставляемый объектом IShapeCollection.
- Запишите изменённую презентацию в файл PPTX.
В приведённом ниже примере мы добавили линию на первый слайд презентации.
// Создайте объект класса PresentationEx, представляющий файл PPTX
Presentation pres = new Presentation();
try {
// Получите первый слайд
ISlide sld = pres.getSlides().get_Item(0);
// Добавьте AutoShape типа line
sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
// Сохраните PPTX на диск
pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Создать линию со стрелкой
Aspose.Slides for Java также позволяет разработчикам настраивать некоторые свойства линии, чтобы она выглядела более привлекательно. Давайте попробуем настроить несколько свойств линии, чтобы она выглядела как стрелка. Пожалуйста, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд, используя его Index.
- Добавьте AutoShape типа Line, используя метод addAutoShape , предоставляемый объектом IShapeCollection.
- Установите Line Style в один из стилей, предлагаемых Aspose.Slides for Java.
- Установите Width линии.
- Установите Dash Style линии в один из стилей, предлагаемых Aspose.Slides for Java.
- Установите Arrow Head Style и Length начальной точки линии.
- Установите Arrow Head Style и Length конечной точки линии.
- Запишите изменённую презентацию в файл PPTX.
// Создать экземпляр класса PresentationEx, представляющего файл PPTX
Presentation pres = new Presentation();
try {
// Получить первый слайд
ISlide sld = pres.getSlides().get_Item(0);
// Добавить AutoShape типа line
IAutoShape shp = sld.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
// Применить форматирование к линии
shp.getLineFormat().setStyle(LineStyle.ThickBetweenThin);
shp.getLineFormat().setWidth(10);
shp.getLineFormat().setDashStyle(LineDashStyle.DashDot);
shp.getLineFormat().setBeginArrowheadLength(LineArrowheadLength.Short);
shp.getLineFormat().setBeginArrowheadStyle(LineArrowheadStyle.Oval);
shp.getLineFormat().setEndArrowheadLength(LineArrowheadLength.Long);
shp.getLineFormat().setEndArrowheadStyle(LineArrowheadStyle.Triangle);
shp.getLineFormat().getFillFormat().setFillType(FillType.Solid);
shp.getLineFormat().getFillFormat().getSolidFillColor().setColor(new Color(PresetColor.Maroon));
// Сохранить PPTX на диск
pres.save("LineShape.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Часто задаваемые вопросы
Могу ли я преобразовать обычную линию в соединитель, чтобы она «прилипала» к фигурам?
Нет. Обычная линия (это AutoShape типа Line) автоматически не превращается в соединитель. Чтобы она прилеплялась к фигурам, используйте специальный тип Connector и соответствующие API для соединений.
Что делать, если свойства линии наследуются из темы и трудно определить конечные значения?
Читайте эффективные свойства через интерфейсы ILineFormatEffectiveData/ILineFillFormatEffectiveData, которые уже учитывают наследование и стили темы.
Могу ли я заблокировать линию от редактирования (перемещения, изменения размеров)?
Да. Фигуры предоставляют объекты блокировки , которые позволяют вам запретить операции редактирования.