Базовое письмо

API Google Slides позволяет добавлять и изменять элементы на страницах презентаций. Примеры на этой странице показывают, как выполнять распространенные операции чтения с помощью метода presentations.batchUpdate .

В этих примерах используются следующие переменные:

Эти примеры представлены в виде HTTP-запросов, чтобы обеспечить языковую нейтральность. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек Google API, см. раздел «Добавление фигур и текста» .

Добавить текстовое поле на слайд

Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateShapeRequest для добавления нового текстового поля (содержащего строку "Мое добавленное текстовое поле") на слайд, указанный в PAGE_ID . В теле запроса указываются два запроса: один для создания фигуры текстового поля (с заданным размером и местоположением), а второй — для вставки в него текста.

Первый запрос указывает идентификатор объекта , который будет использоваться для текстового поля. Это позволяет второму запросу использовать его в том же вызове API, что снижает накладные расходы.

Ниже представлен протокол запроса для добавления текстового поля на слайд:

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

Добавить изображение на слайд

Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateImageRequest для добавления изображения на слайд, указанный в поле PAGE_ID . API получает изображение, используя IMAGE_URL . Этот запрос также масштабирует и позиционирует изображение на слайде.

Ниже представлен протокол запроса для добавления изображения на слайд:

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

Удалить страницу или элемент страницы

Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод DeleteObjectRequest для удаления элемента страницы, указанного параметром PAGE_ELEMENT_ID , и слайда, указанного параметром PAGE_ID с помощью двух отдельных запросов.

Ниже представлен протокол запроса на удаление страницы или элемента страницы:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

Редактировать текст в указанной форме

Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод DeleteTextRequest для замены части текста, присутствующего в фигуре, указанной параметром PAGE_ELEMENT_ID . Для этого сначала удалите текст, используя начальный startIndex , начиная с нуля, а затем вставьте новый текст в эту позицию. В этом примере исходная текстовая строка "My Shape Text: ????" заменяется на "My Shape Text: Trapezoid".

Этот запрос затрагивает только текст в указанной фигуре. Чтобы заменить текст по всей презентации, используйте метод ReplaceAllTextRequest .

Ниже представлен протокол запроса на редактирование текста в указанной фигуре:

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

Замените тег формы изображением.

Теги — это текстовые поля или фигуры с уникальным строковым именем, например, "account-holder-name".

Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateImageRequest для замены одного экземпляра тега shape изображением, сохраняя при этом его положение и масштабируя его в соответствии с размером тега, сохраняя при этом соотношение сторон изображения.

Запрос также можно использовать для замены одного изображения другим. Запрос состоит в добавлении нового изображения, а затем удалении тега.

Метод CreateImageRequest заменяет только указанную фигуру. Чтобы заменить фигуры тегов во всей презентации, используйте метод ReplaceAllShapesWithImageRequest .

Тег shape имеет следующие свойства PageElement (которые можно получить с помощью запроса 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"
  }
}

Фигура находится на слайде, указанном в PAGE_ID . Чтобы указать изображение, заменяющее фигуру, API получает изображение, используя IMAGE_URL . Для сохранения соотношения сторон изображения, ограничивая его размером тега, метод CreateImageRequest устанавливает размер изображения равным произведению размера тега и масштаба, а коэффициент масштабирования изображения — равным 1 Для получения дополнительной информации см. раздел «Сохранение соотношения сторон» .

Ниже представлен протокол запроса на замену тега shape изображением:

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