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żywane są te zmienne:
- PRESENTATION_ID – wskazuje miejsce, w którym podajesz identyfikator prezentacji. Wartość tego identyfikatora możesz znaleźć w adresie URL prezentacji.
- PAGE_ID – wskazuje miejsce, w którym podajesz identyfikator obiektu strony. Wartość tego identyfikatora 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 page. Możesz określić ten identyfikator dla tworzonych elementów (z pewnymi ograniczeniami) lub pozwolić interfejsowi Slides API na automatyczne utworzenie identyfikatora. Identyfikatory elementów można pobrać za pomocą żądania odczytu interfejsu API.
Przykłady są przedstawione jako żądania HTTP, aby były niezależne od języka. Więcej informacji o tym, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu Google API, znajdziesz w artykule Dodawanie kształtów i tekstu.
Dodawanie pola tekstowego do slajdu
Poniższy
presentations.batchUpdate
przykładowy kod pokazuje, jak użyć metody
CreateShapeRequest
, aby dodać nowe pole tekstowe (zawierające ciąg znaków „My Added Text Box”) do
slajdu określonego przez PAGE_ID. W treści żądania określono 2 żądania – jedno do utworzenia kształtu pola tekstowego (o określonym rozmiarze i położeniu), a drugie do wstawienia do niego tekstu.
Pierwsze żądanie określa identyfikator obiektu do użycia w przypadku pola tekstowego. Dzięki temu drugie żądanie może go użyć w tym samym wywołaniu interfejsu API, co zmniejsza obciążenie.
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
presentations.batchUpdate
przykładowy kod pokazuje, jak użyć metody
CreateImageRequest
, aby dodać obraz do slajdu określonego przez PAGE_ID. Interfejs
API pobiera obraz za pomocą IMAGE_URL. To żądanie skaluje też obraz i umieszcza go 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
Poniższy
presentations.batchUpdate
przykładowy kod pokazuje, jak użyć metody
DeleteObjectRequest
, aby usunąć element strony określony przez PAGE_ELEMENT_ID
i slajd określony przez PAGE_ID za pomocą 2 oddzielnych żądań.
Oto protokół żądania usunięcia strony lub elementu strony:
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
presentations.batchUpdate
przykładowy kod 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 startIndex opartego na zerze, a następnie wstaw w to miejsce nowy tekst. W tym przykładzie oryginalny ciąg znaków „My Shape Text: ????” jest zastępowany 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
ReplaceAllTextRequest
metody.
Oto 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ą ciągu znaków, np. „account-holder-name”.
Poniższy
presentations.batchUpdate
przykładowy kod pokazuje, jak użyć metody
CreateImageRequest
, aby zastąpić pojedyncze wystąpienie tagu kształtu obrazem, zachowując
to samo położenie i skalując go tak, aby pasował do rozmiaru tagu, przy jednoczesnym zachowaniu proporcji obrazu.
Żądanie może też służyć do zastąpienia jednego obrazu 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
PageElement
właściwości (które można znaleźć za pomocą
presentations.pages.get
żądania):
{
"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 ma zastąpić kształt, interfejs API pobiera obraz za pomocą
IMAGE_URL. Aby zachować proporcje obrazu przy jednoczesnym ograniczeniu go
do rozmiaru tagu, CreateImageRequest
metoda 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 Zachowywanie proporcji.
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
}
}
]
}