Pisanie podstawowe

Interfejs API Prezentacji Google 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 miejsce, w którym podajesz identyfikator obiektu strony. Wartość tę można pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
  • PAGE_ELEMENT_ID – wskazuje miejsce, w którym podajesz identyfikator obiektu elementu strony. Możesz określić ten identyfikator dla tworzonych 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 sekcję Dodawanie kształtów i tekstu.

Dodawanie pola tekstowego do slajdu

Poniższy 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 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 do użycia w polu tekstowym. Dzięki temu drugie żądanie będzie mogło używać go w tym samym wywołaniu interfejsu API, co zmniejszy narzut.

Oto protokół żądania umożliwiający dodanie 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 PAGE_ID. Interfejs API pobiera obraz za pomocą funkcji IMAGE_URL. Ta prośba także skaluje i pozycjonuje obraz na slajdzie.

Oto protokół żądania dodawania 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 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 za pomocą 2 osobnych żądań.

Oto protokół żądania usunięcia 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

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody DeleteTextRequest do zastąpienia fragmentu tekstu znajdującego się w kształcie określonym przez PAGE_ELEMENT_ID. Aby to zrobić, najpierw usuń tekst za pomocą funkcji startIndex liczonej od zera, a potem wstaw nowy tekst w tym miejscu. W tym przykładzie oryginalny ciąg tekstowy „Mój tekst kształtu: ????” zostaje zastąpiony tekstem „Tekst mojego kształtu: trapez”.

To żądanie dotyczy tylko tekstu o określonym kształcie. Aby zastąpić tekst we wszystkich miejscach prezentacji, użyj metody ReplaceAllTextRequest.

Oto protokół żądania do edytowania tekstu o 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 niepowtarzalną nazwą ciągu znaków, np. „nazwa-właściciela-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.

Żądanie może też posłużyć do zastąpienia jednego obrazu innym. Polega to na dodaniu nowego obrazu i usunięciu tagu.

Metoda CreateImageRequest zastępuje tylko określony kształt. Aby zastąpić kształty tagów w dowolnym miejscu prezentacji, użyj metody ReplaceAllShapesWithImageRequest.

Tag kształtu ma te właściwości PageElement (które można 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 wskazać 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 zarówno rozmiar obrazu, jak i skalę tagu, a skalę obrazu na 1. Więcej informacji znajdziesz w artykule Zachowanie współczynnika proporcji.

Poniżej znajduje się protokół żądania zastępujący tag 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
      }
    }
  ]
}