基本书写

借助 Google Slides API,您可以添加和修改演示文稿页面上的元素。本页面的示例展示了如何使用 presentations.batchUpdate 方法执行常见的读取操作。

这些示例使用以下变量:

  • PRESENTATION_ID - 表示您提供演示文稿 ID 的位置。您可以通过演示网址发现此 ID 的值。
  • PAGE_ID - 指示您提供网页对象 ID 的位置。您可以通过网址或使用 API 读取请求来检索此值。
  • PAGE_ELEMENT_ID - 表示您提供网页元素对象 ID 的位置。您可以为创建的元素指定此 ID(但有一些限制),也可以让 Slides API 自动创建一个。元素 ID 可通过 API 读取请求检索。

这些示例以 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       }     }   ] }