Usługa Prezentacji zaawansowanych

Usługa Zaawansowane Prezentacje umożliwia dostęp do interfejsu Slides API za pomocą Apps Script. Ta usługa umożliwia skryptom odczytywanie i edytowanie treści w Prezentacjach Google.

Dokumentacja

Szczegółowe informacje o tej usłudze można znaleźć w dokumentację referencyjną interfejsu API Prezentacji. Podobnie jak wszystkie usługi zaawansowane w Apps Script, zaawansowana usługa Prezentacje używa takich samych obiektów, metod i parametrów jak w publicznym interfejsie API. Więcej informacji znajdziesz w artykule na temat określania podpisów metod.

Aby zgłosić problemy i uzyskać pomoc, zapoznaj się z Przewodnik po pomocy Prezentacji

Przykładowy kod

Przykładowy kod poniżej korzysta z wersji 1 interfejsu API.

Utwórz nową prezentację

Poniższy przykład pokazuje, jak utworzyć nową prezentację przy użyciu Usługa zaawansowana Prezentacje. Jest to odpowiednik funkcji Tworzenie nowej prezentacji z przepisem kulinarnym.

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);
  }
}

Utwórz nowy slajd

Poniższy przykład pokazuje, jak utworzyć nowy slajd w prezentacji. w określonym indeksie i ze wstępnie zdefiniowanym układem. Jest to odpowiednik funkcji Tworzenie nowego slajdu z przepisem kulinarnym.

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);
  }
}

Przeczytaj identyfikatory obiektów elementów strony

Przykład poniżej pokazuje, jak pobrać identyfikatory obiektów dla każdej strony elementu na konkretnym slajdzie przy użyciu maski pola. Jest to odpowiednik funkcji Odczytywanie identyfikatorów obiektów elementów ze strony z przepisem kulinarnym.

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);
  }
}

Dodaj nowe pole tekstowe

Poniższy przykład pokazuje, jak dodać do slajdu nowe pole tekstowe oraz . Jest to odpowiednik funkcji Dodawanie pola tekstowego do slajdu z przepisem kulinarnym.

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);
  }
}

Sformatuj tekst kształtu

Poniższy przykład pokazuje, jak sformatować tekst kształtu, zaktualizować jego koloru, czcionki i podkreślenia. Jest to odpowiednik funkcji Formatowanie tekstu w kształcie lub polu tekstowym z przepisem kulinarnym.

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);
  }
}

Sprawdzone metody

Aktualizacje zbiorcze

Jeśli korzystasz z usługi zaawansowanej Prezentacji, połącz wiele żądań w tablicy zamiast wywoływać batchUpdate w pętli.

Nie – wywołaj batchUpdate w pętli.

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

Do – wywołaj batchUpdate z tablicą aktualizacje.

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
});