Google SlidesApp: заменить слайд, не разрывая ссылку - PullRequest
0 голосов
/ 10 марта 2020

Я написал некоторый код для создания Google Slide из шаблона Slide.

Вот шаги, которые я выполняю для создания целевого слайд-документа:

  • Сначала я скопирую слайд шаблона в целевой документ, назовем его «Обзор». Если обзорный документ не существует, я создаю его. В противном случае я обновляю существующий документ. Почему ? Просто чтобы сохранить его идентификатор и иметь возможность всегда связывать один и тот же документ в других документах слайдов.
  • Я удаляю существующий слайд и заменяю слайдом шаблона. И, на мой взгляд, вот где у меня проблема ... См. Ниже
  • Затем мой скрипт заменяет заполнители изображениями, диаграммами или текстом ... И это все, ребята!

Вот код, который я использую для инициирования целевого документа:

function initializePresentation(templatePresentation, dstFolder, dstFileName){
  var dstPresentation = "";

  // Check if output file already exist
  if (fileExists(dstFileName, dstFolder)) {

    // Presentation already exists, open it
    dstPresentation = SlidesApp.openById(
      DriveApp.getFilesByName(dstFileName).next().getId());

    // Remove all slides
    var dstSlides = dstPresentation.getSlides();
    for(i=0; i < dstSlides.length; i++) {
      dstSlides[i].remove();
    } 

    // Copy template slide in destination document
    var templateSlide = templatePresentation.getSlides()[0];
    dstPresentation.appendSlide(templateSlide);
  }
  else {
    // Presentation does not exist, create it
    var dstFile = DriveApp.getFileById(templatePresentation.getId()).
      makeCopy(dstFileName, dstFolder);

    // Open the created presentation
    dstPresentation = SlideApp.openById(dstFile.getId());
  }

  return dstPresentation;
}

Теперь давайте свяжем новый сгенерированный обзорный слайд с другим документом ... Он работает, пока я не обновлю Обзор!

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

Как бы вы сделали, чтобы не разорвать ссылку? Я проверил документацию SlidesApp и не нашел способа установить / получить идентификаторы слайдов и поиграть с ним для поддержания ссылок (если ссылки основаны на идентификаторах наверняка!).

В противном случае, есть ли способ эмулировать вид:

  • CTRL + A + DEL, чтобы очистить мой целевой слайд
  • CTRL + A + CTRL + C, чтобы скопировать из моего шаблона, затем CTRL + V, чтобы вставить в мой целевой слайд?

Большое спасибо за вашу помощь!

...