问题描述
我非常喜欢使用 Google 幻灯片作为云托管的轻量级插画替代品(这也恰好是协作和免费的!).我在这里写了一些关于我的过程的想法:
I am a big fan of using Google Slides as a cloud-hosted lightweight illustrator replacement (that also happens to be collaborative and free!). I wrote up a few thoughts on my process here:
我在我的工作流程中尝试做的是将演示文稿中的所有幻灯片一次性下载为图像?Google 幻灯片用户界面只允许您一次下载一张 PNG 格式的幻灯片?
What I'm trying to do in my workflow is download all of the slides in a presentation as images at once? The Google Slides UI only lets you download each slide as a PNG one at a time?
这是否有可能以某种方式使用附加组件或 Apps 脚本?不知道从哪里开始...谢谢!
Is this possible using add-ons or Apps Scripts somehow? Not sure where to start... Thanks!
推荐答案
以下对我有用:
在 Resources > Developer Console Project > View Developers Console 下,启用 Slides API 和 Drive API.
Under Resources > Developer Console Project > View Developers Console, enable both the Slides API and the Drive API.
替换从 start()
函数中的 Slides URL 获取的 ID,并运行它,例如:
Replace the ID taken from the Slides URL in the start()
function, and run it, e.g.:
https://docs.google.com/presentation/d/<id>/edit
该功能会将 PNG 保存到您的云端硬盘中.这可以扩展为将它们全部分组在特定文件夹等中.
and the function will save the PNGs to your Drive. This could be extended to group them all in a specific folder etc.
function downloadPresentation(id) {
var slideIds = getSlideIds(id);
for (var i = 0, slideId; slideId = slideIds[i]; i++) {
downloadSlide('Slide ' + (i + 1), id, slideId);
}
}
function downloadSlide(name, presentationId, slideId) {
var url = 'https://docs.google.com/presentation/d/' + presentationId +
'/export/png?id=' + presentationId + '&pageid=' + slideId;
var options = {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var image = response.getAs(MimeType.PNG);
image.setName(name);
DriveApp.createFile(image);
}
function getSlideIds(presentationId) {
var url = 'https://slides.googleapis.com/v1/presentations/' + presentationId;
var options = {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var slideData = JSON.parse(response);
return slideData.slides.map(function(slide) {
return slide.objectId;
});
}
function start() {
downloadPresentation('Slides document id')
}
这篇关于如何将 Google 幻灯片下载为图片?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!