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