Вставить изображения в существующий шаблон слайдов Google

Вот мой текущий код:

var NAME = "My favorite images";
var deck = SlidesApp.openById("1DKsiDGX9wwRbgP9WH2IJL2- 
    b1u1Q6jjz0JbrrKd_Fl4 ");

    /**
      * Creates a single slide using the image from the given link;
      * used directly by foreach(), hence the parameters are fixed.
      *
      * @param {Date} link A String object representing an image URL
      * @param {Date} index The index into the array; unused (req'd by 
        forEach)
      */
    function addImageSlide(imageUrl, index) {
      var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BODY);
      var image = slide.insertImage(imageUrl);
      var imgWidth = image.getWidth();
      var imgHeight = image.getHeight();
      var pageWidth = deck.getPageWidth();
      var pageHeight = deck.getPageHeight();
      var newX = pageWidth / 2. - imgWidth / 2.;
      var newY = pageHeight / 2. - imgHeight / 2.;
      image.setLeft(newX).setTop(newY);
    }

    /**
      * The driver application features an array of image URLs, setting 
        of the
      * main title & subtitle, and creation of individual slides for each 
        image.
      */
    function main() {
      var images = [
        "http://www.google.com/services/images/phone-animation- 
        results_2x.png ",
        "http://www.google.com/services/images/section-work-card- 
        img_2x.jpg ",
        "http://gsuite.google.com/img/icons/product-lockup.png",
        "http://gsuite.google.com/img/home-hero_2x.jpg"
      ];
      var [title, subtitle] = deck.getSlides()[0].getPageElements();
      title.asShape().getText().setText(NAME);
      subtitle.asShape().getText().setText("");
      images.forEach(addImageSlide);
    }

Я все время получаю сообщение об ошибке Не удается найти метод appendSlide((class)). (строка 12, файл «Код») Какие изменения я должен внести, чтобы иметь возможность вставлять URL-адреса изображений, чтобы их можно было вставить в существующий шаблон слайдов Google?


person jack law    schedule 20.03.2018    source источник


Ответы (1)


Согласно документации, здесь нет предопределенного макета с именем SlidesApp.PredefinedLayout.BODY. Следовательно, вы получаете эту ошибку. Например, если вы измените макет на пустой, этот код будет работать нормально.

Измените эту строку 12, например:

var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BODY);

var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
person Jack Brown    schedule 20.03.2018
comment
Да, я обнаружил, что это работает. Однако у меня есть собственные макеты в созданном мной шаблоне. Как использовать эти макеты? - person jack law; 22.03.2018