Управление фигурой SmartArt
Создать SmartArt форму
Aspose.Slides for Node.js via Java предоставил API для создания SmartArt фигур. Чтобы создать SmartArt форму на слайде, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд, используя его Index.
- Добавьте SmartArt форму путем установки LayoutType.
- Сохраните изменённую презентацию в файл PPTX.
// Создать экземпляр класса Presentation
var pres = new aspose.slides.Presentation();
try {
// Получить первый слайд
var slide = pres.getSlides().get_Item(0);
// Добавить Smart Art фигуру
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.BasicBlockList);
// Сохранение презентации
pres.save("SimpleSmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| Рисунок: SmartArt фигура, добавленная на слайд |
Доступ к SmartArt фигуре на слайде
В следующем коде будет произведён доступ к SmartArt фигурам, добавленным в слайд презентации. В примере кода мы пройдем по всем фигурам внутри слайда и проверим, является ли она SmartArt фигурой. Если фигура типа SmartArt, мы приведём её к экземпляру SmartArt.
// Загрузить нужную презентацию
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
// Перебрать все фигуры на первом слайде
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Проверить, является ли фигура типом SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Привести фигуру к типу SmartArtEx
var smart = shape;
console.log("Shape Name:" + smart.getName());
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Доступ к SmartArt фигуре с определённым LayoutType
В следующем примере кода будет показано, как получить доступ к фигуре SmartArt с определённым LayoutType. Обратите внимание, что изменить LayoutType у SmartArt нельзя, так как он только для чтения и задаётся лишь при добавлении фигуры SmartArt.
- Создайте экземпляр класса Presentation и загрузите презентацию с SmartArt фигурой.
- Получите ссылку на первый слайд, используя его Index.
- Пройдитесь по всем фигурам внутри первого слайда.
- Проверьте, является ли фигура типом SmartArt, и приведите выбранную фигуру к SmartArt, если это SmartArt.
- Проверьте SmartArt фигуру с определённым LayoutType и выполните требуемые действия.
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
// Перебрать все фигуры в первом слайде
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Проверить, является ли фигура типом SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Привести фигуру к типу SmartArtEx
var smart = shape;
// Проверка макета SmartArt
if (smart.getLayout() == aspose.slides.SmartArtLayoutType.BasicBlockList) {
console.log("Do some thing here....");
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Изменить стиль SmartArt фигуры
В этом примере мы научимся изменять быстрый стиль любой SmartArt фигуры.
- Создайте экземпляр класса Presentation и загрузите презентацию с SmartArt фигурой.
- Получите ссылку на первый слайд, используя его Index.
- Пройдитесь по всем фигурам внутри первого слайда.
- Проверьте, является ли фигура типом SmartArt, и приведите выбранную фигуру к SmartArt, если это SmartArt.
- Найдите SmartArt фигуру с определённым Style.
- Установите новый Style для SmartArt фигуры.
- Сохраните презентацию.
// Создать экземпляр класса Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Получить первый слайд
var slide = pres.getSlides().get_Item(0);
// Перебрать все фигуры в первом слайде
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Проверить, является ли фигура типом SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Привести фигуру к типу SmartArtEx
var smart = shape;
// Проверка стиля SmartArt
if (smart.getQuickStyle() == aspose.slides.SmartArtQuickStyleType.SimpleFill) {
// Изменение стиля SmartArt
smart.setQuickStyle(aspose.slides.SmartArtQuickStyleType.Cartoon);
}
}
}
// Сохранение презентации
pres.save("ChangeSmartArtStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Рисунок: SmartArt фигура с изменённым Style |
Изменить цветовой стиль SmartArt фигуры
В этом примере мы научимся изменять цветовой стиль любой SmartArt фигуры. В следующем примере кода будет выполнен доступ к SmartArt фигуре с определённым цветовым стилем и его изменение.
- Создайте экземпляр класса Presentation и загрузите презентацию с SmartArt фигурой.
- Получите ссылку на первый слайд, используя его Index.
- Пройдитесь по всем фигурам внутри первого слайда.
- Проверьте, является ли фигура типом SmartArt, и приведите выбранную фигуру к SmartArt, если это SmartArt.
- Найдите SmartArt фигуру с определённым Color Style.
- Установите новый Color Style для SmartArt фигуры.
- Сохраните презентацию.
// Создать экземпляр класса Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Получить первый слайд
var slide = pres.getSlides().get_Item(0);
// Перебрать все фигуры в первом слайде
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Проверить, является ли фигура типом SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Привести фигуру к типу SmartArtEx
var smart = shape;
// Проверка цветового стиля SmartArt
if (smart.getColorStyle() == aspose.slides.SmartArtColorType.ColoredFillAccent1) {
// Изменение цветового стиля SmartArt
smart.setColorStyle(aspose.slides.SmartArtColorType.ColorfulAccentColors);
}
}
}
// Сохранение презентации
pres.save("ChangeSmartArtColorStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Рисунок: SmartArt фигура с изменённым Color Style |
FAQ
Могу ли я анимировать SmartArt как единый объект?
Да. SmartArt является фигурой, поэтому вы можете применять standard animations через API анимаций (вход, выход, акцент, пути движения), так же как и к другим фигурам.
Как найти конкретный SmartArt на слайде, если я не знаю его внутренний ID?
Установите и используйте альтернативный текст (AltText) и ищите фигуру по этому значению — это рекомендуемый способ найти нужную фигуру.
Могу ли я группировать SmartArt с другими фигурами?
Да. Вы можете группировать SmartArt с другими фигурами (изображения, таблицы и т.д.), а затем manipulate the group.
Как получить изображение конкретного SmartArt (например, для предварительного просмотра или отчёта)?
Экспортируйте миниатюру/изображение фигуры; библиотека может render individual shapes в растровые файлы (PNG/JPG/TIFF).
Сохранится ли внешний вид SmartArt при конвертации всей презентации в PDF?
Да. Рендеринговый движок ориентирован на высокую точность при PDF export, предлагая широкий набор параметров качества и совместимости.

