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

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

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

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

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

В следующем примере кода presentations.batchUpdate показано, как использовать метод CreateShapeRequest для добавления нового текстового поля (содержащего строку «My Added Text Box») на слайд, заданный 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 , начиная с нуля, а затем вставьте новый текст на его место. В этом примере исходная строка «Текст фигуры: ????» заменяется на «Текст фигуры: Трапеция».

Этот запрос применяется только к тексту в указанной форме. Чтобы заменить текст во всей презентации, используйте метод 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
      }
    }
  ]
}

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

Теги — это текстовые поля или фигуры с уникальным строковым именем, например «имя-владельца-счета».

В следующем примере кода presentations.batchUpdate показано, как использовать метод CreateImageRequest для замены одного экземпляра тега фигуры изображением, сохраняя то же положение и масштабируя его в соответствии с размером тега, сохраняя при этом пропорции изображения.

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

Метод 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 . Подробнее см. в разделе Сохранение соотношения сторон .

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

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