元素操作

Slides API 允许您创建和编辑各种页面元素,包括文本框、图像、表格、基本形状、线条和嵌入式视频。 本页上的示例展示了一些可使用 API 实现的常用页面元素操作。

这些示例使用以下变量:

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

向文本框添加项目符号列表

以下 presentations.batchUpdate 请求将插入文本添加到 pageElementId 指定的空文本框,然后将该文本框中的所有文本转换为项目符号列表。此列表中的不同项目由 \n 字符分隔,而缩进则使用 \t 字符进行控制。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "My List\n\tItem 1\n\t\tItem 2\n\t\t\tItem 3",
        "insertionIndex": 0
      },
      "createParagraphBullets": {
        "objectId": pageElementId,
        "bulletPreset": "BULLET_ARROW_DIAMOND_DISC",
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

此请求可创建类似下面这样的项目符号列表:

诀窍结果项目符号列表

向幻灯片添加形状

以下 presentations.batchUpdate 请求向 pageId 指定的幻灯片添加一个波浪形状。 此请求指定形状类型、调整形状比例并将开关放在幻灯片中。 第二个请求向该形状添加文本。 该请求将线条的 ID 设为 pageElementId

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": pageElementId,
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 0.6807,
            "scaleY": 0.4585,
            "translateX": 6583050,
            "translateY": 1673950,
            "unit": "EMU"
          }
        },
        "shapeType": "WAVE"
      }
    },
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "My Wave Shape",
        "insertionIndex": 0
      }
    }
  ]
}

向幻灯片添加视频

以下 presentations.batchUpdate 请求将视频嵌入到 pageId 指定的幻灯片中。 此请求调整视频的比例并将其放在幻灯片中。 该请求将视频的 ID 设为 pageElementIdvideoId 是视频源的唯一标识符;例如,位于 https://www.youtube.com/watch?v=7U3axjORYZ0 的 YouTube 视频具有 ID 7U3axjORYZ0

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createVideo": {
        "objectId": pageElementId,
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 12000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 9000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 381,
            "scaleY": 381,
            "translateX": 152400,
            "translateY": 152400,
            "unit": "EMU"
          }
        },
        "source": "YOUTUBE",
        "id": videoId
      }
    }
  ]
}

复制和编辑元素

以下 presentations.batchUpdate 请求选取一个形状(由 pageElementId 指定)并创建一个副本(由 copyElementId 指定)。然后,此请求对副本进行以下更改:

  • 将背景色设为 LIGHT2 主题背景色。
  • 将副本(从原始形状所在位置)向页面下方移动。
  • 将文本字体设为 18-pt Georgia。
  • 编辑文本,使之显示为“My Shape Copy”。

此处使用的更新请求利用字段掩码保留不做更改的形状属性(如轮廓样式)。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "duplicateObject": {
        "objectId": pageElementId,
        "objectIds": {
          pageElementId: copyElementId
        }
      }
    },
    {
      "updateShapeProperties": {
        "objectId": copyElementId,
        "fields": "shapeBackgroundFill.solidFill.color",
        "shapeProperties": {
          "shapeBackgroundFill": {
            "solidFill": {
              "color": {
                "themeColor": "LIGHT2"
              }
            }
          }
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": copyElementId,
        "applyMode": "RELATIVE",
        "transform": {
          "scaleX": 1,
          "scaleY": 1,
          "translateX": 0,
          "translateY": 1250000,
          "unit": "EMU"
        }
      }
    },
    {
      "updateTextStyle": {
        "objectId": copyElementId,
        "fields": "fontFamily,fontSize",
        "textRange": {
          "type": "ALL"
        },
        "style": {
          "fontFamily": "Georgia",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteText": {
        "objectId": copyElementId,
        "textRange": {
          "type": "ALL"
        }
      }
    },
    {
      "insertText": {
        "objectId": copyElementId,
        "text": "My Shape Copy",
        "insertionIndex": 0
      }
    }
  ]
}

下面是形状及其副本在执行此请求后可能的样子:

复制并更新诀窍结果

编辑图像或视频轮廓

以下 presentations.batchUpdate 请求更新 imageElementId 指定的图像的轮廓外观以及 videoElementId 指定的嵌入视频。此请求:

  • 将图像轮廓颜色设为半透明的 ACCENT5 主题背景色,将视频轮廓颜色设为不透明的 ACCENT1 主题背景色。
  • 将轮廓粗细设为 3-pt。
  • 将图像轮廓样式设为 SOLID,将视频轮廓样式设为 DASH_DOT

目前,updateImagePropertiesupdateVideoProperties 请求只能更改图像的外观和视频轮廓;其他属性为只读属性。此处使用的更新请求利用字段掩码指定仅更改轮廓,通过此方式保护代码,以免受未来 API 变更的影响。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "updateImageProperties": {
        "objectId": imageElementId,
        "fields": "outline",
        "imageProperties": {
          "outline": {
            "dashStyle": "SOLID",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    },
    {
      "updateVideoProperties": {
        "objectId": videoElementId,
        "fields": "outline",
        "videoProperties": {
          "outline": {
            "dashStyle": "DASH_DOT",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT1"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

下面是图像和嵌入视频在执行此请求后可能的样子:

图像和视频轮廓诀窍结果

编辑形状的轮廓

以下 presentations.batchUpdate 请求选取由 pageElementId 指定的一个形状,并更新其轮廓的外观。此请求:

  • 将轮廓颜色设为半透明的 ACCENT5 主题背景色。
  • 将轮廓粗细设为 3-pt。
  • 将轮廓样式设为 LONG_DASH

此处使用的更新请求利用字段掩码保留不做更改的形状属性(如样式填充颜色)。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "updateShapeProperties": {
        "objectId": pageElementId,
        "fields": "outline",
        "shapeProperties": {
          "outline": {
            "dashStyle": "LONG_DASH",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.6,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

下面是形状在执行此请求后可能的样子:

编辑轮廓诀窍结果

设置形状或文本框中文本的格式

以下 presentations.batchUpdate 请求选取由 pageElementId 指定的一个形状,并更新其所有文本的外观。此请求:

  • 将文本颜色设为 ACCENT5 主题背景色。
  • 将字体设为粗斜体 18-pt Corsiva。
  • 给文本添加下划线。

此处使用的更新请求利用字段掩码保留不做更改的文本样式属性(如背景色、链接或基线偏移)。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "updateTextStyle": {
        "objectId": pageElementId,
        "fields": "foregroundColor,bold,italic,fontFamily,fontSize,underline",
        "style": {
          "foregroundColor": {
            "opaqueColor": {
              "themeColor": "ACCENT5"
            }
          },
          "bold": true,
          "italic": true,
          "underline": true,
          "fontFamily": "Corsiva",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        },
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

下面是形状文本在执行此请求后可能的样子:

编辑文本格式诀窍结果

从表格中导入图表

以下 presentations.batchUpdate 请求从 Google 表格导入图表,并将其放在由 pageId 指定的幻灯片上。此请求需要电子表格 ID 和电子表格图表 ID。此处以 spreadsheetIdspreadsheetChartId 的形式指定这些 ID。幻灯片中图表的 ID 是 presentationChartId。 此请求还将幻灯片图表配置为 LINKED,以便在表格图表发生更新时,您可以轻松地更新幻灯片图表。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createSheetsChart": {
        "objectId": presentationChartId,
        "spreadsheetId": spreadsheetId,
        "chartId": spreadsheetChartId,
        "linkingMode": "LINKED",
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 4000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 4000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 100000,
            "translateY": 100000,
            "unit": "EMU"
          }
      }
    }
  ]
}

刷新表格中的图表

以下 presentations.batchUpdate 请求刷新演示文稿中的链接图表,刷新方法是将其替换为 Google 表格中该图表的最新版本。此请求需要演示文稿中该图表的 ID (presentationChartId)。

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

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "refreshSheetsChart": {
        "objectId": presentationChartId
      }
    }
  ]
}

发送以下问题的反馈:

此网页
Slides API
Slides API