6

我为这个问题寻找了一个体面的答案,但我无法提出任何关于 SO 的内容,所以我想我会发布一个新线程。

我正在尝试使用带有谷歌应用程序脚本的高级幻灯片服务将一张幻灯片从谷歌幻灯片复制到另一张幻灯片中。

function myFunction() {
  var originalPresentation = Slides.Presentations.get('1Lqtwb5z8NcU4VVj8OOR11AJyET70tlRRj6QIhxsEZZg');

  var slideToCopy = originalPresentation.slides[3];

  var newSlides = Slides.Presentations.create({
    title: 'New Slidedeck',
    slides: [slideToCopy]
  })
}

这将创建带有标题的幻灯片,但不会复制幻灯片。文档表明您可以传递带有标题的幻灯片数组,但没有任何复制。它还需要母版和布局吗?我究竟做错了什么?提前致谢。

4

2 回答 2

11

2018 年 2 月 16 日更新

2018年2 月 13 日,SlidesApp 服务更新。现在,复制幻灯片可以通过本机方法来实现。

此示例脚本复制第 1 页srcPresentationId并将其作为活动演示文稿的第 1 页插入。

示例脚本:

var srcPresentationId = "### source fileId ###";
var copysrcSlideIndex = 0; // 0 means page 1.

var copydstSlideIndex = 0; // 0 means page 1.

var src = SlidesApp.openById(srcPresentationId).getSlides()[copysrcSlideIndex];
SlidesApp.getActivePresentation().insertSlide(copydstSlideIndex, src);

参考 :

原始答案

你还在寻找复制幻灯片的方法吗?不幸的是,我确认尚无法使用 Slides API 进行复制。但我想到了一个解决方法。

以下解决方法怎么样?在最近的 Google 更新中,我注意到添加了Class SlidesApp。我用过这个。由于我没有找到将幻灯片直接复制到新演示文稿的方法,因此我使用了以下流程。

流动 :

  1. 使用 复制演示文稿DriveApp
  2. 打开复制的演示文稿。
  3. 删除幻灯片,您要使用复制的幻灯片除外remove()

示例脚本:

function myFunction() {
  var srcSlides = 3; // A page number of slide that you want to copy. In this case, the top number is 1.

  var srcid = "1Lqtwb5z8NcU4VVj8OOR11AJyET70tlRRj6QIhxsEZZg";
  var dstid = DriveApp.getFileById(srcid).makeCopy().getId();
  var dstSlides = SlidesApp.openById(dstid).getSlides();
  dstSlides.splice(srcSlides - 1, 1);
  for (var i in dstSlides) {
    dstSlides[i].remove();
  }
}

参考 :

如果这对你没有用,我很抱歉。

于 2017-11-13T04:45:19.487 回答
3

也许你正在寻找这个?

  var PresentationTEST = SlidesApp.openById(TEMPLATE_TEST);
  var PresentationTemplate = SlidesApp.openById(TEMPLATE_DEV);
  var slides = PresentationTemplate.getSlides();

  var slide = slides[0];
  var slide = PresentationTEST.appendSlide(slide);
于 2018-02-01T21:34:33.200 回答