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