Pisanie podstawowe

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żyto tych zmiennych:

  • PRESENTATION_ID—wskazuje, gdzie należy podać identyfikator prezentacji. Wartość tego identyfikatora możesz znaleźć 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 są określone 2 żądania: jedno służy do utworzenia kształtu pola tekstowego (z określonym rozmiarem i lokalizacją), a drugie – do wstawienia w nim 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 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

Ten przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody CreateImageRequest dodać obraz do slajdu określonego przez parametr PAGE_ID. API pobiera obraz za pomocą IMAGE_URL. Ta prośba powoduje też przeskalowanie obrazu i ustawienie 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

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ć pojedynczy przykład tagu kształtu obrazem, zachowując tę samą pozycję i skalowanie, aby pasowały do rozmiaru tagu, przy zachowaniu 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 pobiera obraz za pomocą parametru 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
      }
    }
  ]
}