Переместите элементы страницы на передний или задний план с помощью скрипта приложений в Google Slides

Порядок размещения определяется порядком, в котором они вставляются в слайд. Однако некоторые элементы страницы на слайдах остаются скрытыми.

Есть ли способ изменить порядок объектов в слайдах Google с помощью скрипта приложений?


person Code Guy    schedule 03.10.2018    source источник


Ответы (1)


Как насчет этого обходного пути? Я испытал такую ​​же ситуацию с вами. В то время я переместил элемент, используя этот обходной путь. Я думаю, что есть несколько обходных путей для этой ситуации. Так что считайте это одним из них. Последовательность этого обходного пути выглядит следующим образом.

Принцип:

Например, в Google Slides, когда на слайде создается новая фигура, она добавляется к последнему элементу в pageElements. Это означает, что последний элемент pageElements является самым передним. Это используется для обходного пути.

Поток:

  1. Select shapes.
    • In this case, as a sample, the shapes which are brought to the front are selected by click.
  2. Добавьте выбранные формы на страницу с помощью insertPageElement(). Они добавляются на страницу как новые элементы.
  3. Удалите выбранные формы из pageElements.

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

Пример сценария:

function move(page, spe) {
  var pe = page.getPageElements();
  spe.forEach(function(e) {
    page.insertPageElement(e);
  });
  pe.forEach(function(f, i) {
    if (spe.some(function(g) {return f.getObjectId() == g.getObjectId()})) {
      pe[i].remove();
    }
  });
}

// Bring to back
function back() {
  var slide = SlidesApp.getActivePresentation();
  var selected = slide.getSelection();
  var page = selected.getCurrentPage();
  var pageElements = page.getPageElements();
  var selectedPageElements = selected.getPageElementRange().getPageElements();
  var noSelectedPageElements = pageElements.filter(function(e) {return !selectedPageElements.some(function(f) {return e.getObjectId() == f.getObjectId()})});
  move(page, noSelectedPageElements);
}

// Bring to front
function front() {
  var slide = SlidesApp.getActivePresentation();
  var selected = slide.getSelection();
  var page = selected.getCurrentPage();
  var pageElements = page.getPageElements();
  var selectedPageElements = selected.getPageElementRange().getPageElements();
  move(page, selectedPageElements);
}

Результат:

введите описание изображения здесь

Примечание:

  • Когда вы используете этот скрипт, сначала выберите фигуры на слайде. Затем запустите front() или back(). Когда запущен front(), выбранная форма перемещается на крайний передний край. Когда back() запущен, он перемещается в крайнее положение.
  • In this sample script, the selected shapes are brought to the most front and back. This is a simple sample script.
    • If you want to move the shapes every element, please modify the script.
  • В этом случае перемещенные элементы добавляются как новые элементы. Таким образом обновляются идентификаторы перемещенных объектов.

Использованная литература:

Если этот ответ был не тем, что вам нужно, извините.

Обновлено 20 ноября 2018 г .:

Служба слайдов была обновлена ​​после обновления Google 14 ноября 2018 г., и было добавлено несколько методов для достижения этот выпуск.

Сервис Slides был расширен следующими новыми методами, которые позволяют вам управлять Z-позиционированием элементов страницы в Slides.

  • принестиForward ()
  • на передний план()
  • sendBackward ()
  • sendToBack ()
person Tanaike    schedule 04.10.2018