复制一张幻灯片 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。我用过这个。由于我没有找到直接复制幻灯片到新演示文稿的方法,所以我使用了以下流程。
流量:
- 使用
DriveApp
复制演示文稿。
- 打开复制的演示文稿。
- 使用
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();
}
}
参考资料:
- Class 幻灯片应用程序:https://developers.google.com/apps-script/reference/slides/slides-app
- 删除() : https://developers.google.com/apps-script/reference/slides/slide#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);
我搜索了这个问题的合适答案,但在 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。我用过这个。由于我没有找到直接复制幻灯片到新演示文稿的方法,所以我使用了以下流程。
流量:
- 使用
DriveApp
复制演示文稿。 - 打开复制的演示文稿。
- 使用
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();
}
}
参考资料:
- Class 幻灯片应用程序:https://developers.google.com/apps-script/reference/slides/slides-app
- 删除() : https://developers.google.com/apps-script/reference/slides/slide#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);