Joe*_*des 0 google-apps-script google-slides google-slides-api
大家早上好。我编写了一个简短的脚本,它根据电子表格中的行批量创建 [单页] Google 幻灯片。在每次创建的循环中,我想在 Google Drive 中创建幻灯片的 PNG(或在用户的桌面上下载)。这些图片应该与用户单击文件>下载>PNG 具有相同的规格 - 沉重的小文本需要完整的投影仪高清 - 所以我不相信我可以使用似乎限制为 1600 像素的“缩略图”功能。
我下面的代码生成错误“不支持从文本/html 转换为图像/png” - 所以我不确定这是 API 的限制还是我的编码问题。先感谢您。
var options =
{
"contentType" : "image/PNG"
};
var url = 'https://docs.google.com/presentation/d/' + presentationCopyId + '/export/PNG';
var response = UrlFetchApp.fetch(url, options);
var image = response.getAs(MimeType.PNG);
image.setName(SlideName);
DriveApp.createFile(image);
Run Code Online (Sandbox Code Playgroud)
小智 5
对的,这是可能的。
您可以使用 Google 幻灯片 API 并为 Google 幻灯片的每一页制作一个 PNG 文件。
这是代码, 但首先您必须启用 API,如下所示
现在复制并粘贴此代码,并在presentationID 中写入您的幻灯片ID。
function generateScreenshots() {
var presentationId = "***ADD YOUR Google Slide ID Only***";
var presentation = SlidesApp.openById(presentationId);
var baseUrl =
"https://slides.googleapis.com/v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail";
var parameters = {
method: "GET",
headers: { Authorization: "Bearer " + ScriptApp.getOAuthToken() },
contentType: "application/json",
muteHttpExceptions: true
};
// Log URL of the main thumbnail of the deck
Logger.log(Drive.Files.get(presentationId).thumbnailLink);
// For storing the screenshot image URLs
var screenshots = [];
var slides = presentation.getSlides().forEach(function(slide, index) {
var url = baseUrl
.replace("{presentationId}", presentationId)
.replace("{pageObjectId}", slide.getObjectId());
var response = JSON.parse(UrlFetchApp.fetch(url, parameters));
// Upload Googel Slide image to Google Drive
var blob = UrlFetchApp.fetch(response.contentUrl).getBlob();
DriveApp.createFile(blob).setName("Image " + (index + 1) + ".png");
screenshots.push(response.contentUrl);
});
return screenshots;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |