Zaawansowane usługi Prezentacji

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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

Źródła

Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji referencyjnej dotyczącej Prezentacji Google. Tak jak w przypadku wszystkich zaawansowanych usług Apps Script, zaawansowana usługa Prezentacji korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w temacie Jak powstają podpisy metod.

Aby zgłosić problemy lub znaleźć inne wsparcie, zapoznaj się z przewodnikiem po Prezentacjach.

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ę za pomocą zaawansowanej usługi Prezentacji. Jest to równoważne z przykładem przepisu Utwórz nową prezentację.

zaawansowana/slajdy.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'});
    Logger.log('Created presentation with ID: ' + presentation.presentationId);
    return presentation.presentationId;
  } catch (e) {
    // TODO (developer) - Handle exception
    Logger.log('Failed with error %s', e.message);
  }
}

Utwórz nowy slajd

Poniższy przykład pokazuje, jak utworzyć nowy slajd w określonym indeksie i z wstępnie zdefiniowanym układem. Jest to równoznaczne z przykładem przepisu Utwórz nowy slajd.

zaawansowana/slajdy.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);
    Logger.log('Created Slide with ID: ' + slide.replies[0].createSlide.objectId);
    return slide;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

Przeczytaj identyfikatory obiektów elementów strony

Poniższy przykład pokazuje, jak pobrać identyfikatory obiektów dla każdego elementu strony na konkretnym slajdzie za pomocą maski pola. Jest to równoważne przykładowi przepisu Odczytaj identyfikatory obiektów elementu ze strony.

zaawansowana/slajdy.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'});
    Logger.log(response);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

Dodaj nowe pole tekstowe

Poniższy przykład pokazuje, jak dodać nowe pole tekstowe do slajdu i dodać do niego tekst. Jest to odpowiednik przykładowego przepisu Dodaj pole tekstowe do slajdu.

zaawansowana/slajdy.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);
    Logger.log('Created Textbox with ID: ' +
      response.replies[0].createShape.objectId);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

Sformatuj tekst kształtu

Poniższy przykład pokazuje, jak sformatować tekst, zaktualizować kolor, czcionkę i podkreślić tekst. Jest to równoważne z przykładem przepisu Formatowanie tekstu w kształcie lub polu tekstowym.

zaawansowana/slajdy.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
    Logger.log('Failed with error %s', e.message);
  }
}

Sprawdzone metody

Aktualizacje zbiorcze

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

Don't – 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: ...
    }]
  });
}

Tak – wywołaj funkcję batchUpdate z tablicą aktualizacji.

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