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