Как изменить тип фигуры в Google Slides?

Я вижу, что слайды имеют getShapeType но не имеют метода setShapeType .

Как мы можем обновить тип фигуры в Google Slides?

Это возможно из контекстного меню Google Slides, но не представляется возможным с помощью Google App Script.

Есть идеи? Благодарность!

Всего 2 ответа


Из Class Layout вы можете использовать getShapes, чтобы перейти к Class Shape, где есть много методов для работы с фигурами.


В настоящее время вы не можете изменить тип существующей фигуры с помощью скрипта приложения. Это невозможно даже при использовании Slides API (вы можете изменить свойства фигуры в Presentations.batchUpdate , но это не относится к типу фигуры).

После создания Shape тип устанавливается, и если вы хотите иметь Shape другого типа, вам нужно создать новый.

Однако есть способы достичь этого, даже если не так прямо и быстро:

Обходной путь № 1 (методы скрипта приложения):

Используя встроенные методы Apps Script, вы можете сделать следующее:

  • Получите свойства фигуры, которую вы хотите обновить (включая положение, вращение, масштабирование, цвет и т. Д.), С помощью соответствующих методов ( getRotation , getHeight и т. Д.).
  • Удалите эту существующую форму через Shape.remove .
  • Создайте новую форму с теми же свойствами, что и у старой, но с другой формой, с помощью Slide.insertShape .

См., Например, этот пример, в котором извлекаются положение, вращение и размеры существующей фигуры, затем удаляется фигура, и, наконец, создается новая с той же позицией, вращением и размерами старой, и треугольная форма:

var left = shape.getLeft();
var top = shape.getTop();
var rotation = shape.getRotation();
var height = shape.getHeight();
var width = shape.getWidth();
shape.remove();
var shapeType = SlidesApp.ShapeType.TRIANGLE;
var newShape = slide.insertShape(shapeType, left, top, width, height);
newShape.setRotation(rotation);

Обходной путь № 2 (Advanced Slides Service):

Вы также можете активировать Advanced Slides Service и использовать API Slides для выполнения того же процесса. Вы должны сделать следующее:

Замечания:

Я бы посоветовал вам рассмотреть возможность подачи запроса на добавление функций в этом компоненте отслеживания проблем, объясняющего потенциальную полезность этой желаемой функциональности.

Ссылка:


Есть идеи?

10000