Фигуры и текст
Slides использует общий движок Shape для редактируемых фигур, соединителей и текста. FSlide.insertShape() возвращает Facade фигуры, работающий через командный конвейер Slides.
Вставка фигуры
const slide = univerAPI.getActivePresentation()?.getActiveSlide()if (!slide) { throw new Error('No active slide')}const shape = slide.insertShape({ shapeType: univerAPI.Enum.ShapeTypeEnum.RoundRect, transform: { left: 80, top: 64, width: 320, height: 120 }, visible: true, selectable: true, shapeData: { fill: { fillType: univerAPI.Enum.ShapeFillEnum.SolidFill, color: '#dbeafe', }, },})insertShape() может вернуть null, если адаптер Shape недоступен или входные данные нельзя создать. Перед вставкой зарегистрируйте зависимости Shape из конфигурации Slides.
Добавление форматированного текста
if (shape) { const richText = univerAPI.newRichText() .text('Quarterly ') .bold('review') shape.getText() .setRichText(richText) .setHorizontalAlign(univerAPI.Enum.HorizontalAlign.CENTER) .setVerticalAlign(univerAPI.Enum.VerticalAlign.MIDDLE)}Получайте фигуры через slide.getShape(id) или slide.getShapes(). Общие методы изменяют положение, размер, видимость, имя и описание; slide.deleteElement(shape) удаляет фигуру.
Редактирование текста фигуры
Используйте фигуру, возвращённую insertShape() ниже или в предыдущем примере. getText() возвращает активный объект FShapeText. Метод getPlainText() читает текст, setText() заменяет его целиком; методы форматирования задают шрифт, цвет и выравнивание.
if (!shape) throw new Error('Shape is not available')const shapeText = shape.getText()console.log(shapeText.getPlainText())shapeText .setText('Quarterly review') .setFontSize(18) .setColor('#2563eb') .setBold(true) .setHorizontalAlign(univerAPI.Enum.HorizontalAlign.CENTER) .setVerticalAlign(univerAPI.Enum.VerticalAlign.MIDDLE)setText() заменяет существующий текст. Для нескольких стилей используйте setRichText(). Чтобы изменить существующий форматированный текст, вызовите getRichText()?.copy(), измените полученный построитель и передайте его в setRichText(). Изменения построителя не применяются автоматически. См. также стили текста и отступы и компоновку текстового блока.
const richText = univerAPI.newRichText() .text('Quarterly ') .bold('review')shapeText.setRichText(richText)Копирование формата фигур
Выберите исходную фигуру, включите копирование формата и выберите целевую. Копируются заливка, контур, эффекты и поддерживаемое оформление текста; идентификатор, геометрия, текст и связи формул цели сохраняются. Очистка формата восстанавливает настройки вставки. SmartArt исключён. Соответствующий UI-плагин регистрирует поведение автоматически.
Насколько полезно это руководство?