Servizio Presentazioni avanzato

Il servizio Presentazioni avanzato ti consente di accedere all'API Slides utilizzando Apps Script. Questo servizio consente agli script di leggere e modificare i contenuti in Presentazioni Google.

Riferimento

Per informazioni dettagliate su questo servizio, consulta la documentazione di riferimento per l'API Slides. Come tutti i servizi avanzati in Apps Script, il servizio avanzato Presentazioni utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per ulteriori informazioni, consulta Come vengono determinate le firme dei metodi.

Per segnalare problemi e trovare altro supporto, consulta la Guida all'assistenza di Presentazioni.

Codice di esempio

Il codice di esempio riportato di seguito utilizza la versione 1 dell'API.

Crea una nuova presentazione

L'esempio seguente mostra come creare un nuovo file utilizzando il servizio avanzato di Presentazioni. È equivalente all'esempio di ricetta Crea una nuova presentazione.

advanced/slides.gs
/**  * Create a new presentation.  * @return {string} presentation Id.  * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/create  */ function createPresentation() {   try {     const presentation =       Slides.Presentations.create({'title': 'MyNewPresentation'});     console.log('Created presentation with ID: ' + presentation.presentationId);     return presentation.presentationId;   } catch (e) {     // TODO (developer) - Handle exception     console.log('Failed with error %s', e.message);   } }

Crea una nuova slide

Il seguente esempio mostra come creare una nuova slide in una presentazione, in un indice specifico e con un layout predefinito. È equivalente all'esempio di ricetta Crea una nuova slide.

advanced/slides.gs
/**  * Create a new slide.  * @param {string} presentationId The presentation to add the slide to.  * @return {Object} slide  * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate  */ function createSlide(presentationId) {   // You can specify the ID to use for the slide, as long as it's unique.   const pageId = Utilities.getUuid();    const requests = [{     'createSlide': {       'objectId': pageId,       'insertionIndex': 1,       'slideLayoutReference': {         'predefinedLayout': 'TITLE_AND_TWO_COLUMNS'       }     }   }];   try {     const slide =       Slides.Presentations.batchUpdate({'requests': requests}, presentationId);     console.log('Created Slide with ID: ' + slide.replies[0].createSlide.objectId);     return slide;   } catch (e) {     // TODO (developer) - Handle Exception     console.log('Failed with error %s', e.message);   } }

Leggi gli ID oggetto degli elementi di pagina

L'esempio seguente mostra come recuperare gli ID oggetto per ogni elemento della pagina di una slide specifica utilizzando una maschera di campo. È equivalente all'esempio di ricetta Leggi gli ID oggetto elemento da una pagina.

advanced/slides.gs
/**  * Read page element IDs.  * @param {string} presentationId The presentation to read from.  * @param {string} pageId The page to read from.  * @return {Object} response  * @see https://developers.google.com/slides/api/reference/rest/v1/presentations.pages/get  */ function readPageElementIds(presentationId, pageId) {   // You can use a field mask to limit the data the API retrieves   // in a get request, or what fields are updated in an batchUpdate.   try {     const response = Slides.Presentations.Pages.get(         presentationId, pageId, {'fields': 'pageElements.objectId'});     console.log(response);     return response;   } catch (e) {     // TODO (developer) - Handle Exception     console.log('Failed with error %s', e.message);   } }

Aggiungi una nuova casella di testo

L'esempio riportato di seguito mostra come aggiungere una nuova casella di testo a una slide e aggiungere testo. È equivalente all'esempio Aggiungere una casella di testo a una slide.

advanced/slides.gs
/**  * Add a new text box with text to a page.  * @param {string} presentationId The presentation ID.  * @param {string} pageId The page ID.  * @return {Object} response  * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate  */ function addTextBox(presentationId, pageId) {   // You can specify the ID to use for elements you create,   // as long as the ID is unique.   const pageElementId = Utilities.getUuid();    const requests = [{     'createShape': {       'objectId': pageElementId,       'shapeType': 'TEXT_BOX',       'elementProperties': {         'pageObjectId': pageId,         'size': {           'width': {             'magnitude': 150,             'unit': 'PT'           },           'height': {             'magnitude': 50,             'unit': 'PT'           }         },         'transform': {           'scaleX': 1,           'scaleY': 1,           'translateX': 200,           'translateY': 100,           'unit': 'PT'         }       }     }   }, {     'insertText': {       'objectId': pageElementId,       'text': 'My Added Text Box',       'insertionIndex': 0     }   }];   try {     const response =       Slides.Presentations.batchUpdate({'requests': requests}, presentationId);     console.log('Created Textbox with ID: ' +       response.replies[0].createShape.objectId);     return response;   } catch (e) {     // TODO (developer) - Handle Exception     console.log('Failed with error %s', e.message);   } }

Formatta il testo di forma

Il seguente esempio mostra come formattare il testo di una forma, aggiornandone il colore, il carattere e la sottolineatura. È equivalente all'esempio di ricetta Formattare il testo in una forma o casella di testo.

advanced/slides.gs
/**  * Format the text in a shape.  * @param {string} presentationId The presentation ID.  * @param {string} shapeId The shape ID.  * @return {Object} replies  * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate  */ function formatShapeText(presentationId, shapeId) {   const requests = [{     'updateTextStyle': {       'objectId': shapeId,       'fields': 'foregroundColor,bold,italic,fontFamily,fontSize,underline',       'style': {         'foregroundColor': {           'opaqueColor': {             'themeColor': 'ACCENT5'           }         },         'bold': true,         'italic': true,         'underline': true,         'fontFamily': 'Corsiva',         'fontSize': {           'magnitude': 18,           'unit': 'PT'         }       },       'textRange': {         'type': 'ALL'       }     }   }];   try {     const response =       Slides.Presentations.batchUpdate({'requests': requests}, presentationId);     return response.replies;   } catch (e) {     // TODO (developer) - Handle Exception     console.log('Failed with error %s', e.message);   } }

Best practice

Aggiornamenti batch

Quando utilizzi il servizio avanzato Slides, combina più richieste in un array anziché chiamare batchUpdate in un ciclo.

Non chiamare batchUpdate in un ciclo.

var titles = ["slide 1", "slide 2"]; for (var i = 0; i < titles.length; i++) {   Slides.Presentations.batchUpdate(preso, {     requests: [{       createSlide: ...     }]   }); } 

Fai: chiama batchUpdate con una serie di aggiornamenti.

var requests = []; var titles = ["slide 1", "slide 2"]; for (var i = 0; i < titles.length; i++) {   requests.push({ createSlide: ... }); }  Slides.Presentations.batchUpdate(preso, {   requests: requests });