Как изменить тип фигуры в Google Slides? - PullRequest
1 голос
/ 09 февраля 2020

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

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

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

Есть идеи? Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

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

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

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

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

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

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

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

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 и использовать Slides API для выполнения sh тот же процесс. Вам нужно будет сделать следующее:

Примечание:

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

Slide.insertShape (shapeType, left, top, width, height)
0 голосов
/ 09 февраля 2020

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

...