我正在尝试从源演示文稿中复制幻灯片,并将其附加到目标演示文稿的末尾。我已经在SO上搜索了解决方案,但他们使用了Google Apps脚本。我正在寻找可以使用Google幻灯片或Google Drive REST API的解决方案。到目前为止,我一直在尝试获取源演示文稿幻灯片的每个元素,并使用批处理更新将它们添加到目标演示文稿中,但这显然很繁琐,并且不能涵盖所有情况。有没有人有可能执行此任务的方法?预先感谢。
答案 0 :(得分:2)
不幸的是,在当前阶段,还没有方法可以将幻灯片直接复制到其他Google幻灯片(类似于Sheets API的copyTo方法。)。因此,为了将一张幻灯片复制到其他幻灯片上,我认为有两种解决方法。
我建议使用后者,因为我认为前者将是复杂的脚本。因此,我想为后一种解决方法提出一个示例脚本。
使用此脚本时,请执行以下流程。
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 Apps之后,您可以将Web Apps用作自己的API。请求到已部署的Web Apps的示例curl如下。
在使用此功能之前,请设置幻灯片的源文件和目标文件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.
。那时,您可以在目标幻灯片中看到附加到最后一页的幻灯片。