是否可以将形状从一张幻灯片移动到另一张幻灯片?
Is it possible to move a Shape from a slide to another?
我在 NodeJS 服务器上使用 Google 幻灯片 API 来编辑演示文稿,但我在文档中找不到有关将对象移动到另一张幻灯片(例如 Shape)的任何内容。
答案:
你必须通过从 presentations.pages.get
的响应中获取形状,删除它,然后用 presentations.batchUpdate
.[=39 插入它来做到这一点=]
更多信息:
为了 'move' 使用 API 从一张幻灯片到另一张幻灯片的对象,您实际上必须发出两个请求:一个是删除当前对象,另一个是将其插入新幻灯片。
首先,您需要向 presentations.pages.get
发出请求以获取页面中的所有 PageElement
对象。根据 documentation,Shape 是 PageElement
对象的实例,表示幻灯片上的形状。
presentations.pages.get
的响应将是 Page
resource:
{
"objectId": string,
"pageType": enum (PageType),
"pageElements": [
{
object (PageElement)
}
],
"revisionId": string,
"pageProperties": {
object (PageProperties)
},
// Union field properties can be only one of the following:
"slideProperties": {
object (SlideProperties)
},
"layoutProperties": {
object (LayoutProperties)
},
"notesProperties": {
object (NotesProperties)
},
"masterProperties": {
object (MasterProperties)
}
}
Shape 将包含在此请求的 response['pageElements']
资源中,其形式为:
{
"objectId": string,
"size": {
object (Size)
},
"transform": {
object (AffineTransform)
},
"title": string,
"description": string,
// Union field element_kind can be only one of the following:
"elementGroup": {
object (Group)
},
"shape": {
"shapeType": enum (Type),
"text": {
object (TextContent)
},
"shapeProperties": {
object (ShapeProperties)
},
"placeholder": {
object (Placeholder)
}
},
}
从 presentations.pages.get
获得的响应中获取 Shape 对象后,您将需要从检索到的属性中创建一个 CreateShapeRequest
:
{
"objectId": string,
"elementProperties": {
object (PageElementProperties)
},
"shapeType": enum (Type)
}
还有一个 DeleteObjectRequest
可用于删除上一张幻灯片中的形状:
{
"objectId": string
}
DeleteObjectRequest
和 CreateShapeRequest
可以包含在同一个 batchUpdate
请求中。请求正文应采用以下形式:
{
"requests": [
{
object (Request)
}
],
"writeControl": {
object (WriteControl)
}
}
可以查看 batchUpdate
方法的完整文档 here。
参考文献:
我在 NodeJS 服务器上使用 Google 幻灯片 API 来编辑演示文稿,但我在文档中找不到有关将对象移动到另一张幻灯片(例如 Shape)的任何内容。
答案:
你必须通过从 presentations.pages.get
的响应中获取形状,删除它,然后用 presentations.batchUpdate
.[=39 插入它来做到这一点=]
更多信息:
为了 'move' 使用 API 从一张幻灯片到另一张幻灯片的对象,您实际上必须发出两个请求:一个是删除当前对象,另一个是将其插入新幻灯片。
首先,您需要向 presentations.pages.get
发出请求以获取页面中的所有 PageElement
对象。根据 documentation,Shape 是 PageElement
对象的实例,表示幻灯片上的形状。
presentations.pages.get
的响应将是 Page
resource:
{
"objectId": string,
"pageType": enum (PageType),
"pageElements": [
{
object (PageElement)
}
],
"revisionId": string,
"pageProperties": {
object (PageProperties)
},
// Union field properties can be only one of the following:
"slideProperties": {
object (SlideProperties)
},
"layoutProperties": {
object (LayoutProperties)
},
"notesProperties": {
object (NotesProperties)
},
"masterProperties": {
object (MasterProperties)
}
}
Shape 将包含在此请求的 response['pageElements']
资源中,其形式为:
{
"objectId": string,
"size": {
object (Size)
},
"transform": {
object (AffineTransform)
},
"title": string,
"description": string,
// Union field element_kind can be only one of the following:
"elementGroup": {
object (Group)
},
"shape": {
"shapeType": enum (Type),
"text": {
object (TextContent)
},
"shapeProperties": {
object (ShapeProperties)
},
"placeholder": {
object (Placeholder)
}
},
}
从 presentations.pages.get
获得的响应中获取 Shape 对象后,您将需要从检索到的属性中创建一个 CreateShapeRequest
:
{
"objectId": string,
"elementProperties": {
object (PageElementProperties)
},
"shapeType": enum (Type)
}
还有一个 DeleteObjectRequest
可用于删除上一张幻灯片中的形状:
{
"objectId": string
}
DeleteObjectRequest
和 CreateShapeRequest
可以包含在同一个 batchUpdate
请求中。请求正文应采用以下形式:
{
"requests": [
{
object (Request)
}
],
"writeControl": {
object (WriteControl)
}
}
可以查看 batchUpdate
方法的完整文档 here。