Управление SmartArt
Получить текст из SmartArt
Теперь метод TextFrame был добавлен в класс SmartArtShape и класс SmartArtShape соответственно. Это свойство позволяет вам получить весь текст из SmartArt, если он содержит не только текст узлов. Следующий пример кода поможет вам получить текст из узла SmartArt.
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
var slide = pres.getSlides().get_Item(0);
var smartArt = slide.getShapes().get_Item(0);
var smartArtNodes = smartArt.getAllNodes();
for (let i = 0; i < smartArtNodes.size(); i++) {
const smartArtNode = smartArtNodes.get_Item(i);
for (let j = 0; j < smartArtNode.getShapes().size(); j++) {
const nodeShape = smartArtNode.getShapes().get_Item(j);
if (nodeShape.getTextFrame() != null) {
console.log(nodeShape.getTextFrame().getText());
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Изменить тип макета SmartArt
Чтобы изменить тип макета SmartArt. Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд, используя его индекс.
- Добавьте SmartArt BasicBlockList.
- Измените LayoutType на BasicProcess.
- Сохраните презентацию в файл PPTX. В приведенном ниже примере мы добавили соединитель между двумя фигурами.
var pres = new aspose.slides.Presentation();
try {
// Добавить SmartArt BasicProcess
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicBlockList);
// Сменить LayoutType на BasicProcess
smart.setLayout(aspose.slides.SmartArtLayoutType.BasicProcess);
// Сохранение презентации
pres.save("ChangeSmartArtLayout_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Проверка свойства Hidden у SmartArt
Обратите внимание: метод SmartArtNode.isHidden() возвращает true, если данный узел является скрытым в модели данных. Чтобы проверить свойство hidden у любого узла SmartArt. Выполните следующие действия:
- Создайте экземпляр класса Presentation.
- Добавьте SmartArt RadialCycle.
- Добавьте узел к SmartArt.
- Проверьте свойство isHidden .
- Сохраните презентацию в файл PPTX.
В приведенном ниже примере мы добавили соединитель между двумя фигурами.
var pres = new aspose.slides.Presentation();
try {
// Добавить SmartArt BasicProcess
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.RadialCycle);
// Добавить узел в SmartArt
var node = smart.getAllNodes().addNode();
// Проверить свойство isHidden
var hidden = node.isHidden();// Возвращает true
if (hidden) {
// Выполнить некоторые действия или уведомления
}
// Сохранение презентации
pres.save("CheckSmartArtHiddenProperty_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Получить или задать тип организационной схемы
Методы SmartArtNode.getOrganizationChartLayout() , setOrganizationChartLayout(int) позволяют получить или задать тип организационной схемы, связанный с текущим узлом. Чтобы получить или задать тип организационной схемы, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Добавьте SmartArt на слайд.
- Получите или задать тип организационной схемы.
- Сохраните презентацию в файл PPTX. В приведенном ниже примере мы добавили соединитель между двумя фигурами.
var pres = new aspose.slides.Presentation();
try {
// Добавить SmartArt BasicProcess
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.OrganizationChart);
// Получить или задать тип организационной схемы
smart.getNodes().get_Item(0).setOrganizationChartLayout(aspose.slides.OrganizationChartLayoutType.LeftHanging);
// Сохранение презентации
pres.save("OrganizeChartLayoutType_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Создать Picture Organization Chart
Aspose.Slides for Node.js via Java предоставляет простой API для создания PictureOrganization диаграмм простым способом. Чтобы создать диаграмму на слайде:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте диаграмму с данными по умолчанию и нужным типом (ChartType.PictureOrganizationChart).
- Запишите изменённую презентацию в файл PPTX
Следующий код используется для создания диаграммы.
var pres = new aspose.slides.Presentation("test.pptx");
try {
var smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.PictureOrganizationChart);
pres.save("OrganizationChart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Получить или задать состояние SmartArt
Чтобы изменить тип макета SmartArt. Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Добавьте SmartArt на слайд.
- Получить или задать состояние диаграммы SmartArt.
- Сохраните презентацию в файл PPTX.
Следующий код используется для создания диаграммы.
// Создать экземпляр класса Presentation, представляющего файл PPTX
var pres = new aspose.slides.Presentation();
try {
// Добавить SmartArt BasicProcess
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicProcess);
// Получить или задать состояние диаграммы SmartArt
smart.setReversed(true);
var flag = smart.isReversed();
// Сохранение презентации
pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Поддерживает ли SmartArt зеркальное отображение/реверсирование для RTL‑языков?
Да. Метод setReversed переключает направление диаграммы (LTR/RTL), если выбранный тип SmartArt поддерживает реверс.
Как скопировать SmartArt на тот же слайд или в другую презентацию, сохранив форматирование?
Вы можете клонировать форму SmartArt через коллекцию фигур (ShapeCollection.addClone) или клонировать весь слайд с этой фигурой. Оба подхода сохраняют размер, позицию и стили.
Как отрендерить SmartArt в растровое изображение для предварительного просмотра или веб‑экспорта?
Отрендерите слайд (или всю презентацию) в PNG/JPEG через API, конвертирующий слайды/презентации в изображения — SmartArt будет отрисован как часть слайда.
Как программно выбрать конкретный SmartArt на слайде, если их несколько?
Обычно используют альтернативный текст (Alt Text) или setName и затем ищут фигуру по этому атрибуту с помощью Slide.getShapes, после чего проверяют тип, чтобы убедиться, что это SmartArt. Документация описывает типичные техники поиска и работы с фигурами.