将幻灯片从一个Google幻灯片演示文稿复制到另一幻灯片中

Jor*_*hea 4 google-apps-script google-slides-api

我搜索了一个不错的答案,但是我对此一无所获,所以我想我应该发布一个新主题。

我正在尝试使用带有Google Apps脚本的高级幻灯片服务将单个幻灯片从Google幻灯片复制到另一个幻灯片。

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

  var slideToCopy = originalPresentation.slides[3];

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

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

Tan*_*ike 7

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);
Run Code Online (Sandbox Code Playgroud)

参考:

原始答案

您是否还在寻找复制幻灯片的方法?不幸的是,我确认无法使用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();
  }
}
Run Code Online (Sandbox Code Playgroud)

参考文献:

如果这对您没有用,对不起。