Advanced Slides Service

The Advanced Slides service lets you access the Slides API using Apps Script. This service allows scripts to read and edit content in Google Slides.

Reference

For detailed information on this service, see the reference documentation for the Slides API. Like all advanced services in Apps Script, the advanced Slides service uses the same objects, methods, and parameters as the public API.

Sample code

The sample code below uses version 1 of the API.

Create a new presentation

The following example demonstrates how to create a new presentation using the Slides advanced service. It is equivalent to the Create a new presentation recipe sample.

function createPresentation() {
  var presentation =
      Slides.Presentations.create({"title": "MyNewPresentation"});
  Logger.log("Created presentation with ID: " + presentation.presentationId);
}

Create a new slide

The following example demonstrates how to create a new slide in a presentation, at a specific index and with predefined layout. It is equivalent to the Create a new slide recipe sample.

function createSlide(presentationId) {
  // You can specify the ID to use for the slide, as long as it's unique.
  var pageId = Utilities.getUuid();

  var requests = [{
    "createSlide": {
      "objectId": pageId,
      "insertionIndex": 3,
      "slideLayoutReference": {
        "predefinedLayout": "TITLE_AND_TWO_COLUMNS"
      }
    }
  }];
  var slide =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
  Logger.log("Created Slide with ID: " + slide.replies[0].createSlide.objectId);
}

Read page element object IDs

The following example demonstrates how to retrieve the object IDs for every page element on a specific slide using a field mask. It is equivalent to the Read element object IDs from a page recipe sample.

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.
  var response = Slides.Presentations.Pages.get(
      presentationId, pageId, {"fields": "pageElements.objectId"});
  Logger.log(response);
}

Add a new text box

The following example demonstrates how to add a new text box to a slide and add text to it. It is equivalent to the Add a text box to a slide recipe sample.

function addTextBox(presentationId, pageId) {
  // You can specify the ID to use for elements you create,
  // as long as the ID is unique.
  var pageElementId = Utilities.getUuid();

  var 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
    }
  }];
  var response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
  Logger.log("Created Textbox with ID: " +
      response.replies[0].createShape.objectId);
}

Format shape text

The following example demonstrates how to format a shape's text, updating its color, font and underlining its text. It is equivalent to the Format text in a shape or textbox recipe sample.

function formatShapeText(presentationId, shapeId) {
  var 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"
      }
    }
  }];
  var response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
}

Send feedback about...

Apps Script
Apps Script