Il principio si basa sull'utilizzo del metodo presentations.pages.getThumbnail
Generare Screenshots da una presentazione in Google Slides con Google Apps Script
Con Google Apps Script e le API di Google Slides è possibile generare immagini ad alta risoluzione, in formato PNG (mime type predefinito), delle singole slide di una presentazione e caricarle sul proprio Google Drive.
Il principio si basa sull'utilizzo del metodo presentations.pages.getThumbnail, delle Google Slides API, che permette di generare una miniatura dell'ultima versione di una slide specificata all'interno di una presentazione in Google Slides restituendone un'anteprima tramite un URL.
Il codice seguente mostra come salvare su Drive, tramite Google Apps Script, tutte le immagini all'interno di una presentazione specificata tramite il suo ID:
function generateScreenshots(presentationId) {
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
};
// Array per gli url degli screenshot
var screenshots = [];
// Processa ogni slide presente nella presentazione
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));
// Accede alla singola slide tramite il url e ne recupera i dati
var blob = UrlFetchApp.fetch(response.contentUrl).getBlob();
// Carica su Google Drive l'immagine della slide processata
DriveApp.createFile(blob).setName("Image " + (index + 1) + ".png");
// Popola l'array con gli url dei singoli screenshot
screenshots.push(response.contentUrl);
});
return screenshots;
}
function main() {
// Id della presentazione in Google Slides su Drive
var presentationId = '1MyUOpS2ogYFN4pgKXnXuZIOm...';
// Richiama la funziona per la generazione degli screenshots
var screenshots = generateScreenshots(presentationId);
// Nel log è visualizzabile l'array con gli url degli screenshot
// Su Drive invece è possibile trovare direttamente le varie immagini delle slide
Logger.log(screenshots);
}
L'utilizzo dello script di cui sopra è molto semplice, basterà sostituire il valore di presentationId con l'ID della presentazione di proprio interesse ed avviare la funzione main().
Nota che, utilizzando le API di Drive e Slides è necessario abilitare l'uso delle API dei Servizi Avanzati di Google nel progetto in questione (nel caso dello script oggetto del presente tutorial l'abilitazione deve essere effettuata per le Drive API e Google Slides API).
Per fare un esempio prendo in considerazione una presentazione che è stata oggetto di un mio precedente tutorial, 'Creare un Report in Google Slides generato automaticamente con Google Apps Script', che riporto graficamente di seguito, Fig. 1:
Il risultato dell'esecuzione dello script sono le 4 immagini, di cui è composta la presentazione processata, salvate su Drive, Fig. 2:
Nel log dell'editor di Apps Script è visualizzabile l'array con gli url degli screenshots.
Una nota importante: la presentazione utilizzata a titolo esemplificativo per lo scopo di questo tutorial è composta da solo 4 slide, nel caso di presentazioni più voluminose è bene sapere che esistono dei limiti di utilizzo delle Slides API per la consultazione dei quali rimando alla documentazione ufficiale.
Non ci sono commenti
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
scrivi un commento