Javascript, HTML, CSS e... !
0 commenti

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:



presentazione in google slides utilizzata a titolo esemplificativo

Fig. 1 - Presentazione in Google Slides utilizzata a titolo esemplificativo


Il risultato dell'esecuzione dello script sono le 4 immagini, di cui è composta la presentazione processata, salvate su Drive, Fig. 2:



immagini generate dalle slide di una presentazione in google slides e salvate su drive

Fig. 2 - Immagini generate dalle slide di una presentazione in Google Slides e salvate su Google Drive


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.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]http://www.appsscript.it[/url] se devi riferirti ad un indirizzo web