Operacje na elementach

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:

Wynik przepisu na liście punktowanej.

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:

Kopiowanie i edytowanie wyniku przepisu dotyczącego elementu.

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:

Wynik zawiera przepisy
dotyczące konspektów obrazów i filmów.

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:

Edytuj wynik przepisu w konspektu.

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:

Edytuj wynik w formacie tekstowym.

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
      }
    }
  ]
}