我正在尝试从源演示文稿中复制幻灯片并将它们附加到目标演示文稿的末尾。我在SO上搜索了解决方案,但他们使用谷歌应用程序脚本。我正在寻找可以使用谷歌幻灯片或谷歌驱动器REST API的解决方案。到目前为止,我所尝试的是获取源演示文稿幻灯片的每个元素,并使用批量更新将它们添加到目标演示文稿,但显然这很乏味,并不涵盖所有情况。有没有人有任何可能的方法来执行此任务?提前致谢。
不幸的是,在目前的阶段,还没有方法可以直接复制幻灯片(就像Sheets API的copyTo方法一样)到其他Google幻灯片。因此,为了将幻灯片复制到其他幻灯片,我认为有2个解决方法。
我推荐后者,因为我认为前者将是复杂的脚本。所以我想为后一种解决方法提出一个示例脚本。
使用此脚本时,请执行以下操作。
https://script.google.com/macros/s/#####/exec
。
单击“确定”。通过此流程,Web Apps被部署为自己的API。在此示例中,“有权访问应用程序的人员,甚至是匿名者”被用作测试。如果您想使用访问令牌,请修改此权限。您可以在“参考”下方查看详细信息。
function doGet(e) {
var srcId = e.parameters.srcId;
var dstId = e.parameters.dstId;
var srcPage = e.parameters.srcPage;
var srcSlide = SlidesApp.openById(srcId);
var dstSlide = SlidesApp.openById(dstId);
var copySlide = srcSlide.getSlides()[srcPage - 1];
dstSlide.appendSlide(copySlide);
return ContentService.createTextOutput("Done.");
}
部署Web应用程序后,您可以将Web Apps用作自己的API。请求部署的Web Apps的样本卷曲如下。
在使用它之前,请设置幻灯片的源和目标文件ID。如果要复制源幻灯片的第一页,请将1
设置为srcPage
。还请设置上面检索的端点。
curl -GL \
-d "srcId=### fileId of source Slides ###" \
-d "dstId=### fileId of destination Slides ###" \
-d "srcPage=1" \
"https://script.google.com/macros/s/#####/exec"
运行此命令时,将返回Done.
。此时,您可以看到附加的幻灯片到目标幻灯片的最后一页。