API Google Slides позволяет добавлять и изменять элементы на страницах презентаций. Примеры на этой странице показывают, как выполнять распространённые операции чтения с помощью метода presentations.batchUpdate
.
В этих примерах используются следующие переменные:
- PRESENTATION_ID — указывает, где вы указываете идентификатор презентации . Значение этого идентификатора можно узнать из URL-адреса презентации.
- PAGE_ID — указывает, где вы указываете идентификатор объекта страницы . Вы можете получить это значение из URL-адреса или с помощью запроса на чтение API.
- PAGE_ELEMENT_ID — указывает, где вы указываете идентификатор объекта элемента страницы . Вы можете указать этот идентификатор для создаваемых вами элементов (с некоторыми ограничениями ) или разрешить API Slides автоматически создать его. Идентификаторы элементов можно получить с помощью запроса на чтение API.
Эти примеры представлены в виде 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 } } ] }