基本写入

您可以通过 Slides API 添加和修改演示文稿页面上的元素。 本页上的示例展示如何使用 presentations.batchUpdate 方法执行常见写入操作。

这些示例使用以下变量:

  • presentationId — 表示您提供演示文稿 ID 的位置。 您可以通过演示文稿网址查找此 ID 的值。
  • pageId — 表示您提供页面对象 ID 的位置。 您可以从网址或使用 API 读取请求检索此 ID 的值。
  • pageElementId — 表示您提供页面元素对象 ID 的位置。 您可以为您创建的元素指定此 ID(具有一些限制)或允许 API 自动创建一个 ID;可通过 API 读取请求检索元素 ID。

向幻灯片添加文本框

以下 presentations.batchUpdate 请求向 pageId 指定的幻灯片添加一个新文本框(包含字符串“My Added Text Box”)。 在请求正文中指定两个请求 — 一个用于创建文本框(具有给定的大小和位置),另一个用于向文本框插入文本。

第一个请求指定用于文本框的对象 ID。 这将允许第二个请求在同一个 API 调用中修改该 ID,从而减少开销。

请求协议如下所示。 添加文本和形状指南展示了一个使用 Google API 客户端内容库实现不同语言批量更新的示例。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": pageElementId,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

向幻灯片添加图像

以下 presentations.batchUpdate 请求向 pageId 指定的幻灯片添加新图像。 通过提供 API 获取图像的网址 (imageUrl) 来指定图像。 此请求确定图像的缩放比例及其在幻灯片中位置。

请求协议如下所示。 添加文本和形状指南展示了一个使用 Google API 客户端内容库实现不同语言批量更新的示例。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": imageUrl,
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

删除页面或页面元素

以下 presentations.batchUpdate 请求使用两个单独的请求删除 pageElementId 指定的页面元素和 pageId 指定的幻灯片。

请求协议如下所示。 添加文本和形状指南展示了一个使用 Google API 客户端内容库实现不同语言批量更新的示例。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": pageElementId
      },
      "deleteObject": {
        "objectId": pageId
      }
    }
  ]
}

在指定的形状中编辑文本

以下 presentations.batchUpdate 请求替换 pageElementId 指定的形状中显示的部分文本。 可通过先删除从开始索引开始的文本,然后在该位置插入新文本来执行此操作。 在此示例中,将原始文本字符串“My Shape Text: ????”替换为“My Shape Text:Trapezoid”。

此请求仅影响一个指定的形状中的文本。 要替换演示文稿中每个位置的文本,则使用 ReplaceAllTextRequest 请求。

请求协议如下所示。 添加文本和形状指南展示了一个使用 Google API 客户端内容库实现不同语言批量更新的示例。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": pageElementId,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

将形状标记替换为图像

以下 presentations.batchUpdate 请求将单个标记形状实例替换为图像,保持相同的位置并根据标记的大小缩放图像,同时保持图像的纵横比。此请求还可用于将一个图像替换为另一个图像。此请求需要先添加新图像,然后删除标记。

此请求仅替换一个指定的形状。 要在演示文稿中的每个位置替换标记形状,请使用 replaceAllShapesWithImage 请求。

此标记形状具有以下属性(属性可通过 presentations.pages.get 请求查找):

{
  "objectId": pageElementId,
  "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"
  }
}

此形状位于 pageId 指定的幻灯片上。 要指定将替换形状的图像,请提供一个供 API 提取图像的网址 (imageUrl)。为在保持图像纵横比的同时使图像大小不超出标记的大小,createImage 请求将(所需的)图像大小设为标记大小和缩放比例的乘积,并将图像缩放因子设为 1(请参阅保持纵横比指南)。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": imageUrl,
        "elementProperties": {
          "pageObjectId": pageId,
          "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": pageElementId
      }
    }
  ]
}

发送以下问题的反馈:

此网页
Slides API
Slides API