Как скопировать слайд из одной презентации в другую?

Я пытаюсь скопировать слайды из исходной презентации и добавить их в конец целевой презентации. Я искал решения на SO, но они используют скрипт приложений Google. Я ищу решение, которое может использовать слайды Google или REST API Google Drive.

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

У кого-нибудь есть возможные способы выполнить эту задачу?

К сожалению, на текущем этапе пока нет методов для прямого копирования слайда (это похоже на метод copyTo API листов) в другие слайды Google. Поэтому, чтобы скопировать слайд на другие слайды, я думаю, что есть 2 обходных пути. 1. После получения всех объектов и форматов на слайде методом get создайте новый слайд и поместите объекты методом batchUpdate. 2. Создайте API с помощью Google Apps Script, потому что служба слайдов GAS имеет метод прямого копирования слайда. Я рекомендую последний, потому что я думаю, что первый будет сложным сценарием.

Tanaike 09.04.2019 00:29

Большое спасибо за ваши предложения! Вы должны написать ответ, чтобы я мог отметить этот вопрос как отвеченный.

chiragzq 09.04.2019 03:29

Спасибо за ответ. Я опубликовал ответ, включив пример сценария для последнего обходного пути. Не могли бы вы подтвердить это? Если это не тот результат, который вы хотите, я извиняюсь.

Tanaike 09.04.2019 04:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
3
1 578
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

К сожалению, на текущем этапе пока нет методов для прямого копирования слайда (это похоже на метод copyTo API листов) в другие слайды Google. Поэтому, чтобы скопировать слайд на другие слайды, я думаю, что есть 2 обходных пути.

  1. После получения всех объектов и форматов на слайде с помощью метода get создайте новый слайд и поместите объекты с помощью метода batchUpdate.
  2. Создайте API с помощью Google Apps Script, потому что служба слайдов GAS имеет метод прямого копирования слайда.

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

При использовании этого сценария выполните следующие действия.

Процесс подготовки

  1. Войдите в Google Диск. https://drive.google.com/drive/мой-драйв
  2. Создайте новый автономный проект.
  3. Задайте имя проекта и скопируйте и вставьте следующий пример сценария.
  4. Развертывание веб-приложений.
    1. В редакторе сценариев откройте диалоговое окно, нажав «Опубликовать» -> «Развернуть как веб-приложение».
    2. Выберите «Я» для «Выполнить приложение как:».
    3. Выберите «Любой, даже анонимный» для «У кого есть доступ к приложению:».
    4. Нажмите кнопку «Развернуть» в качестве новой «версии проекта».
    5. Автоматически открывать диалоговое окно «Требуется авторизация».
      1. Нажмите «Просмотреть разрешения».
      2. Выберите собственную учетную запись.
      3. Нажмите «Дополнительно» в разделе «Это приложение не проверено».
      4. Нажмите «Перейти к ### имени проекта ### (небезопасно)».
      5. Нажмите кнопку «Разрешить».
    6. Скопируйте «URL-адрес текущего веб-приложения:».
      • Это как https://script.google.com/macros/s/#####/exec.
    7. Нажмите «ОК».

В этом потоке веб-приложения были развернуты как собственный API. В этом примере в качестве теста использовалось «Любой, даже анонимный» для «У кого есть доступ к приложению:». Если вы хотите использовать токен доступа, измените его. Подробную информацию вы можете увидеть ниже в разделе «Ссылки».

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

Скрипт Google Apps:

function doGet(e) {
  var srcId = e.parameters.srcId;
  var dstId = e.parameters.dstId;
  var srcPage = e.parameters.srcPage;
  var srcSlide = SlidesApp.openById(srcId);
  var dstSlide = SlidesApp.openById(dstId);
  var copySlide = srcSlide.getSlides()[srcPage - 1];
  dstSlide.appendSlide(copySlide);
  return ContentService.createTextOutput("Done.");
}

команда скручивания:

После развертывания веб-приложений вы можете использовать веб-приложения как собственный API. Пример curl для запроса к развернутым веб-приложениям выглядит следующим образом.

Прежде чем использовать это, установите идентификатор исходного и целевого файлов слайдов. Если вы хотите скопировать первую страницу исходных слайдов, установите 1 на srcPage. Также, пожалуйста, установите конечную точку, которая была получена выше.

curl -GL \
  -d "srcId=### fileId of source Slides ###" \
  -d "dstId=### fileId of destination Slides ###" \
  -d "srcPage=1" \
  "https://script.google.com/macros/s/#####/exec"

При выполнении этой команды возвращается Done.. В это время вы можете увидеть добавленный слайд к последней странице в целевых слайдах.

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

Более простой способ здесь (возможно) debugcn.com/en/article/18027667.html

aNewb 19.07.2021 02:13

Другие вопросы по теме