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 tych przykładach używamy tych zmiennych:
- PRESENTATION_ID– wskazuje, gdzie podajesz identyfikator prezentacji. Wartość tego identyfikatora znajdziesz w adresie URL prezentacji.
- PAGE_ID– wskazuje, gdzie podajesz identyfikator obiektu strony. Wartość tego parametru możesz pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
- PAGE_ELEMENT_ID – wskazuje miejsce, w którym podajesz identyfikator obiektu elementu strony. Możesz określić ten identyfikator dla tworzonych elementów (z pewnymi ograniczeniami) lub zezwolić interfejsowi Slides API na jego automatyczne utworzenie. Identyfikatory elementów można pobrać za pomocą żądania odczytu interfejsu API.
Przykłady te są przedstawione jako żądania HTTP, aby były niezależne od języka. Aby dowiedzieć się, jak wdrożyć 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
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateShapeRequest
dodać nowe pole tekstowe (zawierające ciąg „My Added Text Box”) do slajdu określonego przez PAGE_ID. W treści żądania określono 2 żądania – jedno dotyczące utworzenia kształtu pola tekstowego (o określonym rozmiarze i położeniu), a drugie dotyczące wstawienia do niego tekstu.
Pierwsze żądanie określa identyfikator obiektu, który ma być używany w polu tekstowym. Dzięki temu drugie żądanie może użyć go w tym samym wywołaniu interfejsu API, co zmniejsza obciążenie.
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 PAGE_ID. API pobiera obraz za pomocą IMAGE_URL. Ta prośba powoduje też skalowanie i pozycjonowanie obrazu na slajdzie.
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
Poniższy 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 za pomocą 2 osobnych żądań.
Protokół żądania usunięcia strony lub elementu strony jest następujący:
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 użyć metody DeleteTextRequest
, aby zastąpić część tekstu znajdującego się w kształcie określonym przez PAGE_ELEMENT_ID. Aby to zrobić, najpierw usuń tekst za pomocą indeksu zerowego startIndex
, a potem wstaw w to miejsce nowy tekst. W tym przykładzie oryginalny ciąg tekstowy „My Shape Text: ????" został zastąpiony ciągiem „My
Shape Text: Trapezoid”.
To żądanie dotyczy tylko tekstu w określonym kształcie. Aby zastąpić tekst w całej prezentacji, użyj metody ReplaceAllTextRequest
.
Poniżej znajdziesz protokół żądania edytowania 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 tagu kształtu obrazem
Tagi to pola tekstowe lub kształty z unikalną nazwą w postaci ciągu znaków, np. „account-holder-name”.
Poniższy przykładowy kodpresentations.batchUpdate
pokazuje, jak za pomocą metodyCreateImageRequest
zastąpić pojedynczy tag kształtu obrazem, zachowując tę samą pozycję i skalując go tak, aby pasował do rozmiaru tagu, przy jednoczesnym zachowaniu proporcji obrazu.
Możesz też użyć tego żądania, aby zastąpić jeden obraz innym. Żądanie 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 (które można znaleźć za pomocą żądania presentations.pages.get
):PageElement
{ "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 pobiera go za pomocą parametru IMAGE_URL. Aby zachować współczynnik proporcji obrazu, ograniczając go do rozmiaru tagu, metoda CreateImageRequest
ustawia zarówno rozmiar obrazu na iloczyn rozmiaru i skali tagu, jak i współczynniki skali obrazu na 1
. Więcej informacji znajdziesz w artykule Zachowaj proporcje.
Poniżej znajdziesz 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 } } ] }