复制一张幻灯片 Google 将演示文稿幻灯片复制到另一张

Copying a slide from one Google Slides presentation into another

我搜索了这个问题的合适答案,但在 SO 上找不到任何答案,所以我想 post 一个新线程。

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

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

  var slideToCopy = originalPresentation.slides[3];

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

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

2018 年 2 月 16 日更新

February 13, 2018,更新了 SlidesApp 服务。现在,复制幻灯片可以通过原生方法实现。

此示例脚本复制 srcPresentationId 的第 1 页并将其作为活动演示文稿的第 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);

参考:

原答案

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

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

流量:

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

示例脚本:

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();
  }
}

参考资料:

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

也许您正在寻找这个?

  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);