借助 Google 幻灯片 API,您可以添加和修改演示文稿页面上的元素。本页面的示例展示了如何使用 presentations.batchUpdate 方法执行常见的读取操作。
这些示例使用以下变量:
- PRESENTATION_ID - 表示您提供 演示文稿 ID的位置。您可以从演示文稿网址中发现此 ID 的值。
- PAGE_ID - 表示您提供 页面对象 ID 的位置。您可以从网址中检索此值,也可以使用 API 读取请求检索此值。
- PAGE_ELEMENT_ID - 表示您提供 页面 元素对象 ID 的位置。您可以为自己创建的元素指定此 ID(但有一些限制),也可以让幻灯片 API 自动创建一个。元素 ID 可以通过 API 读取请求检索。
这些示例以 HTTP 请求的形式呈现,以保持语言中立。如需了解如何使用 Google API 客户端库以不同语言实现批量更新,请参阅添加形状和文本。
向幻灯片添加文本框
以下
presentations.batchUpdate
代码示例展示了如何使用
CreateShapeRequest
方法向
PAGE_ID指定的幻灯片添加一个包含字符串“My Added Text Box”的新文本框。请求正文中指定了两个请求:一个用于创建文本框形状(具有给定的大小和位置),另一个用于向其中插入文本。
第一个请求 指定了要用于对象 ID的文本框。这样,第二个请求就可以在同一 API 调用中使用该 ID,从而减少开销。
以下是向幻灯片添加文本框的请求协议:
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
方法将形状标记的单个实例替换为图片,同时保持相同的位置并缩放图片以适应标记的大小,同时保持图片的宽高比。
该请求还可用于将一张图片替换为另一张图片。该请求包括添加新图片,然后删除标记。
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
}
}
]
}