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 tych przykładach używane są następujące zmienne:

  • PRESENTATION_ID – wskazuje, gdzie należy podać identyfikator prezentacji. Wartość tego identyfikatora można znaleźć w adresie 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 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 podane są 2 żądania – jedno tworzy kształt pola tekstowego (o określonym rozmiarze i położeniu), a drugie służy do wstawienia w nim tekstu.

Pierwsze żądanie określa identyfikator obiektu dla pola tekstowego. Dzięki temu drugie żądanie może użyć go w tym samym wywołaniu interfejsu API, co zmniejsza narzut.

Oto protokół żądań dodawania 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ą interfejsu IMAGE_URL. To żądanie skaluje i określa położenie obrazu na slajdzie.

Oto protokół żądań 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 jej elementu

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 usuwania 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 o określonym kształcie

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody DeleteTextRequest zastąpić część tekstu występującego w kształcie określonym przez PAGE_ELEMENT_ID. W tym celu najpierw usuń tekst, używając startIndex od zera, a potem wstaw w tym miejscu nowy tekst. W tym przykładzie oryginalny ciąg tekstowy „Mój tekst kształtu: ????” został zastąpiony tekstem „Mój tekst kształtu: trapez”.

To żądanie dotyczy tylko tekstu o określonym kształcie. Aby zastąpić tekst wszędzie w prezentacji, użyj metody ReplaceAllTextRequest.

Oto protokół żądań 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-konta-właściciela”.

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody CreateImageRequest zastąpić pojedyncze wystąpienie tagu kształtu obrazem, zachowując tę samą pozycję i skalując go tak, aby pasował do rozmiaru tagu, zachowując proporcje obrazu.

Żądanie może też posłużyć do zastąpienia jednego obrazu innym. Składa się ono z dodania nowego obrazu i usunięcia tagu.

Metoda CreateImageRequest zastępuje tylko określony kształt. Aby zastąpić kształty tagów we wszystkich miejscach w 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 określić obraz, który zastępuje kształt, interfejs API pobiera go za pomocą polecenia IMAGE_URL. Aby zachować współczynnik proporcji obrazu i ograniczyć go do rozmiaru tagu, metoda CreateImageRequest ustawia zarówno rozmiar obrazu, jak i iloczyn rozmiaru i skali tagu, a współczynniki skali obrazu na 1. Więcej informacji znajdziesz w artykule Zachowanie współczynnika proporcji.

Poniżej przedstawiamy 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
      }
    }
  ]
}