Interfejs Prezentacji Google umożliwia tworzenie i edytowanie zasobów PageElement
, w tym pól tekstowych, obrazów, tabel, podstawowych kształtów, linii i umieszczonych filmów. W przykładach na tej stronie widać niektóre typowe operacje elementów strony za pomocą metody presentations.batchUpdate
.
W tych przykładach używane są następujące zmienne:
- PRESENTATION_ID – wskazuje, gdzie należy podać identyfikator prezentacji. Wartość tego identyfikatora można pobrać z adresu URL prezentacji.
- PAGE_ID – wskazuje, gdzie należy podać identyfikator obiektu strony. Wartość tę możesz pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
- PAGE_ELEMENT_ID – wskazuje, gdzie należy podać identyfikator obiektu pageelement. Możesz określić ten identyfikator dla tworzonych przez siebie elementów (z pewnymi ograniczeniami) lub zezwolić interfejsowi Prezentacji API na jego automatyczne tworzenie. Identyfikatory elementów można pobierać za pomocą żądania odczytu interfejsu API.
Te przykłady są prezentowane jako żądania HTTP bez względu na język. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu API Google, przeczytaj te przewodniki:
Dodawanie listy punktowanej do pola tekstowego
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak użyć metody InsertTextRequest
do wstawienia tekstu w pustym polu tekstowym zdefiniowanym przez PAGE_ELEMENT_ID. W przykładzie użyto następnie metody CreateParagraphBulletsRequest
, aby przekonwertować cały tekst pola tekstowego na listę punktowaną. Elementy na liście są rozdzielone \n
znakami, a wcięcie jest kontrolowane przy użyciu \t
znaków.
Poniżej znajduje się protokół żądania do utworzenia prezentacji:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "insertText": { "objectId": PAGE_ELEMENT_ID, "text": "My List\n\tItem 1\n\t\tItem 2\n\t\t\tItem 3", "insertionIndex": 0 }, "createParagraphBullets": { "objectId": PAGE_ELEMENT_ID, "bulletPreset": "BULLET_ARROW_DIAMOND_DISC", "textRange": { "type": "ALL" } } } ] }
To żądanie może utworzyć listę punktowaną, która będzie wyglądać tak:
Dodawanie kształtu do slajdu
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateShapeRequest
dodać kształt fali do slajdu określonego przez PAGE_ID.
To żądanie określa typ kształtu, a następnie skaluje i określa jego położenie na slajdzie. Następnie wykorzystuje metodę InsertTextRequest
, aby dodać tekst do kształtu. Żądanie ustawia identyfikator wiersza na PAGE_ELEMENT_ID.
Poniżej przedstawiamy protokół żądań dodawania kształtu do slajdu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createShape": { "objectId": PAGE_ELEMENT_ID, "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 3000000, "unit": "EMU" }, "height": { "magnitude": 3000000, "unit": "EMU" } }, "transform": { "scaleX": 0.6807, "scaleY": 0.4585, "translateX": 6583050, "translateY": 1673950, "unit": "EMU" } }, "shapeType": "WAVE" } }, { "insertText": { "objectId": PAGE_ELEMENT_ID, "text": "My Wave Shape", "insertionIndex": 0 } } ] }
Dodawanie filmu do slajdu
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak użyć metody CreateVideoRequest
do umieszczenia filmu na slajdzie określonym przez PAGE_ID.
To żądanie skaluje film i określa jego pozycję na slajdzie, a także ustawia jego identyfikator na PAGE_ELEMENT_ID. Unikalny identyfikator filmu źródłowego jest ustawiony na VIDEO_ID. Na przykład film w YouTube pod adresem https://www.youtube.com/watch?v=7U3axjORYZ0
ma identyfikator 7U3axjORYZ0
.
Oto protokół żądań dodawania filmu do slajdu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createVideo": { "objectId": PAGE_ELEMENT_ID, "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 12000, "unit": "EMU" }, "height": { "magnitude": 9000, "unit": "EMU" } }, "transform": { "scaleX": 381, "scaleY": 381, "translateX": 152400, "translateY": 152400, "unit": "EMU" } }, "source": "YOUTUBE", "id": VIDEO_ID } } ] }
Kopiowanie i edytowanie elementu
Z tego przykładowego kodu presentations.batchUpdate
dowiesz się, jak użyć metody DuplicateObjectRequest
, aby nadać istniejący kształt (określony przez PAGE_ELEMENT_ID) i utworzyć jego kopię (określoną przez COPY_ELEMENT_ID).
Kolejne żądania wprowadzają następujące zmiany w zduplikowanym obiekcie:
- Ustawia kolor tła na kolor motywu
LIGHT2
. - Przenosi kopię w dół strony (z pozycji pierwotnego kształtu).
- Ustawia czcionkę tekstu 18-punktów w stanie Georgia.
- Edytuje tekst na „Mój kształt kształtu”.
Żądania, które są tu przesyłane, korzystają z masek pól, aby zachować właściwości kształtu, które się nie zmieniły (np. styl konturu). Stosowanie masek pól poprawia również wydajność.
Więcej informacji na temat kopiowania slajdu znajdziesz w przykładzie Kopiowanie slajdu.
Oto protokół żądań kopiowania i edytowania elementu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "duplicateObject": { "objectId": PAGE_ELEMENT_ID, "objectIds": { PAGE_ELEMENT_ID: COPY_ELEMENT_ID } } }, { "updateShapeProperties": { "objectId": COPY_ELEMENT_ID, "fields": "shapeBackgroundFill.solidFill.color", "shapeProperties": { "shapeBackgroundFill": { "solidFill": { "color": { "themeColor": "LIGHT2" } } } } } }, { "updatePageElementTransform": { "objectId": COPY_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 0, "translateY": 1250000, "unit": "EMU" } } }, { "updateTextStyle": { "objectId": COPY_ELEMENT_ID, "fields": "fontFamily,fontSize", "textRange": { "type": "ALL" }, "style": { "fontFamily": "Georgia", "fontSize": { "magnitude": 18, "unit": "PT" } } } }, { "deleteText": { "objectId": COPY_ELEMENT_ID, "textRange": { "type": "ALL" } } }, { "insertText": { "objectId": COPY_ELEMENT_ID, "text": "My Shape Copy", "insertionIndex": 0 } } ] }
Tak może wyglądać kształt i jego kopia po wprowadzeniu tych zmian:
Edytowanie konspektu obrazu lub filmu
Z tego przykładowego kodu presentations.batchUpdate
dowiesz się, jak za pomocą metody UpdateImagePropertiesRequest
zmienić wygląd konturu obrazu określonego przez właściwość IMAGE_ELEMENT_ID. Wykorzystuje też metodę UpdateVideoPropertiesRequest
do aktualizowania wyglądu konspektu umieszczonego filmu określony przez VIDEO_ELEMENT_ID.
Żądania wprowadzają następujące zmiany w obiekcie:
- Ustawia kolor konturu obrazu na kolor motywu
ACCENT5
z częściową przezroczystością. - Ustawia kolor obrysu filmu na motyw
ACCENT1
bez przezroczystości. - Ustawia wagę konturu na 3 pkt.
- Ustawia styl konturu obrazu na
SOLID
. - Ustawia styl konspektu filmu na
DASH_DOT
.
Zarówno metoda UpdateImagePropertiesRequest
, jak i UpdateVideoPropertiesRequest
pozwalają tylko zmieniać wygląd konturów obrazów i filmów. Wszystkie pozostałe usługi są przeznaczone tylko do odczytu. Żądania, które są tu wysyłane, korzystają z masek pól, aby wskazać, że należy zmienić tylko kontur, aby chronić kod przed przyszłymi zmianami interfejsu API. Stosowanie masek pól też poprawia wydajność.
Oto protokół żądań edycji obrazu lub konspektu filmu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updateImageProperties": { "objectId": IMAGE_ELEMENT_ID, "fields": "outline", "imageProperties": { "outline": { "dashStyle": "SOLID", "outlineFill": { "solidFill": { "alpha": 0.8, "color": { "themeColor": "ACCENT5" } } }, "weight": { "magnitude": 3, "unit": "PT" } } } } }, { "updateVideoProperties": { "objectId": VIDEO_ELEMENT_ID, "fields": "outline", "videoProperties": { "outline": { "dashStyle": "DASH_DOT", "outlineFill": { "solidFill": { "alpha": 0.8, "color": { "themeColor": "ACCENT1" } } }, "weight": { "magnitude": 3, "unit": "PT" } } } } } ] }
Tak mogą wyglądać obrazy i umieszczone filmy po tych zmianach:
Edytowanie konturu kształtu
Z tego przykładowego kodu presentations.batchUpdate
dowiesz się, jak za pomocą metody UpdateShapePropertiesRequest
nadać istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować wygląd jego konturu.
Żądania wprowadzają następujące zmiany w obiekcie:
- Ustawia kolor konturu na kolor motywu
ACCENT5
z częściową przezroczystością. - Ustawia grubość konturu na 3 pkt.
- Ustawia styl konturu na
LONG_DASH
.
Żądania, które są tu przesyłane, korzystają z masek pól, aby zachować właściwości kształtu, które się nie zmieniły (np. kolor wypełnienia kształtu). Stosowanie masek pól poprawia również wydajność.
Poniżej przedstawiamy protokół żądań do edytowania konturu kształtu:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updateShapeProperties": { "objectId": PAGE_ELEMENT_ID, "fields": "outline", "shapeProperties": { "outline": { "dashStyle": "LONG_DASH", "outlineFill": { "solidFill": { "alpha": 0.6, "color": { "themeColor": "ACCENT5" } } }, "weight": { "magnitude": 3, "unit": "PT" } } } } } ] }
Tak może wyglądać kształt po tych zmianach:
Formatowanie tekstu w kształcie lub polu tekstowym
Z tego przykładowego kodu presentations.batchUpdate
dowiesz się, jak za pomocą metody UpdateTextStyleRequest
przybrać istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować wygląd tekstu.
Żądania wprowadzają następujące zmiany w obiekcie:
- Ustawia kolor tekstu na kolor motywu
ACCENT5
. - Ustawia pogrubienie, kursywę o długości 18 punktów.
- Podkreśla tekst.
Żądania te korzystają z masek pól, aby zachować właściwości stylu tekstu, które się nie zmieniły (np. kolor tła, linki czy przesunięcia punktu odniesienia). Stosowanie masek pól poprawia też wydajność.
Poniżej przedstawiamy protokół żądań do formatowania tekstu w kształcie lub polu tekstowym:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updateTextStyle": { "objectId": PAGE_ELEMENT_ID, "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" } } } ] }
Tak może wyglądać tekst kształtu po wprowadzeniu tych zmian:
Importowanie wykresu z Arkuszy Google
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody CreateSheetsChartRequest
zaimportować wykres z arkusza i umieścić go na slajdzie określonym przez PAGE_ID.
Żądanie wymaga identyfikatora arkusza kalkulacyjnego (określonego przez SPREADSHEET_ID) oraz identyfikatora wykresu arkusza kalkulacyjnego (określonego przez SPREADSHEET_CHART_ID). Identyfikator wykresu w prezentacji w Prezentacjach jest określany na podstawie PRESENTATION_CHART_ID.
Żądanie ustawia też wartość LinkingMode
wykresu w Prezentacjach na LINKED
. Dzięki temu można zaktualizować umieszczony wykres, gdy wykres w arkuszu źródłowym zostanie zaktualizowany.
Poniżej znajdziesz protokół żądań importowania wykresu z Arkuszy:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createSheetsChart": { "objectId": PRESENTATION_CHART_ID, "spreadsheetId": SPREADSHEET_ID, "chartId": SPREADSHEET_CHART_ID, "linkingMode": "LINKED", "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 4000000, "unit": "EMU" }, "height": { "magnitude": 4000000, "unit": "EMU" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 100000, "translateY": 100000, "unit": "EMU" } } } ] }
Odświeżanie wykresu z Arkuszy
Poniższy przykładowy kod presentations.batchUpdate
pokazuje, jak za pomocą metody RefreshSheetsChartRequest
odświeżyć połączony wykres w prezentacji, zastępując go najnowszą wersją tego wykresu ze źródłowego arkusza kalkulacyjnego Arkuszy. Żądanie wymaga identyfikatora wykresu w Prezentacjach (określonego w pliku PRESENTATION_CHART_ID).
Poniżej znajdziesz protokół żądań odświeżania wykresu z Arkuszy:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "refreshSheetsChart": { "objectId": PRESENTATION_CHART_ID } } ] }