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 poniższych przykładach używane są te zmienne:

  • PRESENTATION_ID – wskazuje, gdzie podajesz identyfikator prezentacji. Wartość tego identyfikatora można poznać 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 określone są dwa żądania: jedno ma na celu utworzenie kształtu pola tekstowego (z określonym rozmiarem i lokalizacją), a drugie w celu wstawienia do niego 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 nakłady.

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 przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody CreateImageRequest dodać obraz do slajdu określonego przez zmienną PAGE_ID. API pobiera obraz za pomocą IMAGE_URL. Ta prośba także skaluje i pozycjonuje obraz 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ć pojedyncze wystąpienie tagu kształtu obrazem, utrzymywać tę samą pozycję i skalować ją tak, by pasowała do rozmiaru tagu przy zachowaniu współczynnika 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 pobierze obraz za pomocą funkcji 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
      }
    }
  ]
}