我搜索了这个问题的正确答案,但是我无法想出任何关于SO的内容,所以我想我会发布一个新帖子。
我正在尝试使用带有谷歌应用脚本的高级幻灯片服务将一张幻灯片从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表示您可以传递带有标题的幻灯片数组,但没有任何内容正在复制。它还需要大师和布局吗?我究竟做错了什么? 提前致谢。
答案 0 :(得分:5)
你还在寻找复制幻灯片的方法吗?不幸的是,我确认使用脚本的Slides 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();
}
}
如果这对你没用,我很抱歉。
在February 13, 2018,幻灯片服务已更新。通过这种方式,复制幻灯片可以通过本机方法实现。
此示例脚本从srcSlideId
的第1页复制到活动幻灯片的第1页。
var srcSlideId = "### source fileId ###";
var copysrcSlideIndex = 0; // 0 means page 1.
var copydstSlideIndex = 0; // 0 means page 1.
var src = SlidesApp.openById(srcSlideId).getSlides()[copysrcSlideIndex];
SlidesApp.getActivePresentation().insertSlide(copydstSlideIndex, src);
答案 1 :(得分:1)
也许你正在寻找这个?
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);