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

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

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

Тег формы имеет следующие свойства 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
      }
    }
  ]
}