Interfejs Google Slides API umożliwia dodawanie i modyfikowanie elementów na stronach prezentacji. Przykłady na tej stronie pokazują, jak wykonywać typowe operacje odczytu za pomocą metody presentations.batchUpdate
.
W poniższych przykładach używane są te zmienne:
- PRESENTATION_ID – wskazuje, gdzie podajesz identyfikator prezentacji. Wartość tego identyfikatora można poznać w adresie URL prezentacji.
- PAGE_ID—Wskazuje, gdzie należy podać identyfikator obiektu strony. Wartość tej opcji możesz pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
- PAGE_ELEMENT_ID—Wskazuje, gdzie należy podać identyfikator obiektu elementu strony. Możesz podać ten identyfikator dla tworzonych elementów (z niektórymi ograniczeniami) lub pozwolić interfejsowi Slides API na automatyczne utworzenie identyfikatora. Identyfikatory elementów można pobrać za pomocą żądania odczytu interfejsu API.
Te przykłady są przedstawione jako żądania HTTP, aby były neutralne pod względem języka. Aby dowiedzieć się, jak zaimplementować aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu Google API, przeczytaj artykuł Dodawanie kształtów i tekstu.
Dodawanie pola tekstowego do slajdu
Ten przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateShapeRequest
dodać nowe pole tekstowe (zawierające ciąg „Moje dodane pole tekstowe”) do slajdu określonego przez parametr PAGE_ID. W treści żądania określone są dwa żądania: jedno ma na celu utworzenie kształtu pola tekstowego (z określonym rozmiarem i lokalizacją), a drugie w celu wstawienia do niego tekstu.
Pierwsze żądanie określa identyfikator obiektu, który ma być użyty w polu tekstowym. Dzięki temu drugie żądanie może użyć go w tym samym wywołaniu interfejsu API, co zmniejszy nakłady.
Oto protokół żądania dodania pola tekstowego do slajdu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createShape": { "objectId": PAGE_ELEMENT_ID, "shapeType": "TEXT_BOX", "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 150, "unit": "PT" }, "height": { "magnitude": 50, "unit": "PT" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 200, "translateY": 100, "unit": "PT" } } } }, { "insertText": { "objectId": PAGE_ELEMENT_ID, "text": "My Added Text Box", "insertionIndex": 0 } } ] }
Dodawanie obrazu do slajdu
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateImageRequest
dodać obraz do slajdu określonego przez zmienną PAGE_ID. API pobiera obraz za pomocą IMAGE_URL. Ta prośba także skaluje i pozycjonuje obraz na slajdzie.
Oto protokół żądania dodania obrazu do slajdu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createImage": { "url": IMAGE_URL, "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 30, "unit": "PT" }, "height": { "magnitude": 30, "unit": "PT" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 200, "translateY": 100, "unit": "PT" } } } } ] }
Usuwanie strony lub elementu strony
Ten przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody DeleteObjectRequest
usunąć element strony określony przez PAGE_ELEMENT_ID i slajd określony przez PAGE_ID, używając 2 oddzielnych żądań.
Oto protokół prośby o usunięcie strony lub jej elementu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "deleteObject": { "objectId": PAGE_ELEMENT_ID }, "deleteObject": { "objectId": PAGE_ID } } ] }
Edytowanie tekstu w określonym kształcie
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody DeleteTextRequest
zastąpić część tekstu w kształcie określonym przez zmienną PAGE_ELEMENT_ID. Aby to zrobić, najpierw usuń tekst za pomocą startIndex
, a następnie wstaw nowy tekst w tym miejscu. W tym przykładzie oryginalny ciąg tekstowy „My Shape Text: ????” jest zastępowany przez „My Shape Text: Trapezoid”.
Ta prośba dotyczy tylko tekstu w określonym kształcie. Aby zastąpić tekst w całej prezentacji, użyj metody ReplaceAllTextRequest
.
Oto protokół żądania edycji tekstu w określonym kształcie:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "deleteText": { "objectId": PAGE_ELEMENT_ID, "textRange": { "type": "FROM_START_INDEX", "startIndex": 15 } } }, { "insertText": { "objectId": PAGE_ELEMENT_ID, "text": "Trapezoid", "insertionIndex": 15 } } ] }
Zastępowanie znacznika kształtu obrazem
Tagi to pola tekstowe lub kształty z unikalną nazwą ciągu znaków, np. „nazwa_posiadacza_konta”.
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateImageRequest
zastąpić pojedyncze wystąpienie tagu kształtu obrazem, utrzymywać tę samą pozycję i skalować ją tak, by pasowała do rozmiaru tagu przy zachowaniu współczynnika proporcji obrazu.
Możesz też użyć tej prośby, aby zastąpić jeden obraz innym. Prośba polega na dodaniu nowego obrazu, a następnie usunięciu tagu.
Metoda CreateImageRequest
zastępuje tylko określony kształt. Aby zastąpić kształty tagów w całej prezentacji, użyj metody ReplaceAllShapesWithImageRequest
.
Tag kształtu ma te właściwości:PageElement
(można je znaleźć za pomocą żądania presentations.pages.get
):
{ "objectId": PAGE_ELEMENT_ID, "size": { "width": { "magnitude": 3000000, "unit": "EMU" }, "height": { "magnitude": 3000000, "unit": "EMU" } }, "transform": { "scaleX": 1.13, "scaleY": 0.62, "translateX": 4800000, "translateY": 450000, "unit": "EMU" }, "shape": { "shapeType": "RECTANGLE" } }
Kształt znajduje się na slajdzie określonym przez PAGE_ID. Aby określić obraz, który zastąpi kształt, interfejs API pobierze obraz za pomocą funkcji IMAGE_URL. Aby zachować współczynnik proporcji obrazu, ograniczając go do rozmiaru tagu, metoda CreateImageRequest
ustawia rozmiar obrazu na iloczyn rozmiaru tagu i skali, a współczynniki skali obrazu na 1
. Więcej informacji znajdziesz w artykule Przechowywanie proporcji boków.
Oto protokół żądania zastąpienia tagu kształtu obrazem:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createImage": { "url": IMAGE_URL, "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 3000000 * 1.13, "unit": "EMU" }, "height": { "magnitude": 3000000 * 0.62, "unit": "EMU" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 4800000, "translateY": 450000, "unit": "PT" } } } }, { "deleteObject": { "objectId": PAGE_ELEMENT_ID } } ] }