我正在尝试遵循 Google Slides API 引用 Material ; 'Lines' 但我一定错过了一些东西。我已经使用脚本成功添加了矩形形状,但现在我想用一条线连接它们。这是我到目前为止所拥有的:
function addConnections()
{
var myPresentation = SlidesApp.getActivePresentation()
var presentationId = myPresentation.getId();
var slideId = myPresentation.getSlides()[0].getObjectId()
var requests = []
requests.push(
{
createLine:
{
lineProperties:
{
startConnection:
{
connectedObjectId: 'queryD200',
connectionSiteIndex: 3
},
endConnection:
{
connectedObjectId: 'queryD201',
connectionSiteIndex: 0
}
},
lineType: 'CURVED_CONNECTOR_2'
}
})
Slides.Presentations.batchUpdate({requests: requests}, presentationId);
}
我得到的错误是: “requests[0].create_line”处的未知名称“lineType”:找不到字段。 “requests[0].create_line”处的未知名称“lineProperties”:找不到字段。
但这些是谷歌在其文档中使用的确切字段名称。 我尝试了带引号和不带引号的两种方法。请帮忙!谢谢你
最佳答案
我相信您的目标如下。
- 您想要在 Google 幻灯片上用一条线连接 2 个形状。
- 您希望使用 Slides API 和 Google Apps 脚本来实现此目的。
对于这个,这个答案怎么样?
修改点:
createLine
中没有lineProperties
属性。LineProperties
中没有lineType
属性。- 在您的请求正文中,未使用
fields
属性。 - 为了用一条线连接两个形状,在您的情况下,以下流程怎么样?
- 使用
createLine
创建线条对象。 - 使用
lineProperties
更新线条对象。lineProperties
可用于使用UpdateLinePropertiesRequest
的现有线条对象。
- 使用
修改后的脚本:
当你的脚本修改后,它会变成如下。
function addConnections() {
var myPresentation = SlidesApp.getActivePresentation()
var presentationId = myPresentation.getId();
var slideId = myPresentation.getSlides()[0].getObjectId();
var lineObjectId = "sampleline001";
var startShape = "queryD200";
var endShape = "queryD201";
var requests = [
{createLine: {
objectId: lineObjectId,
lineCategory: "CURVED",
elementProperties: {pageObjectId: slideId, size: {height: {magnitude: 1 ,unit: "PT"}, width: {magnitude: 1, unit: "PT"}}}
}},
{updateLineProperties: {
objectId: lineObjectId,
lineProperties: {startConnection: {connectedObjectId: startShape}, endConnection: {connectedObjectId: endShape}},
fields: "startConnection,endConnection"
}}
];
Slides.Presentations.batchUpdate({requests: requests}, presentationId);
}
示例脚本:
作为另一种模式,您还可以使用 Slides service 来实现此目的而不是幻灯片 API。
function addConnections() {
var myPresentation = SlidesApp.getActivePresentation()
var presentationId = myPresentation.getId();
var slide = myPresentation.getSlides()[0];
var slideId = slide.getObjectId();
var startShape = "queryD200";
var endShape = "queryD201";
var line = slide.insertLine(
SlidesApp.LineCategory.CURVED,
slide.getPageElementById(startShape).asShape().getConnectionSites()[0],
slide.getPageElementById(endShape).asShape().getConnectionSites()[0]
);
}
结果:
当以上两个脚本针对 2 个形状运行时,可以获得以下结果。
注意:
- 我不确定形状对象 ID
queryD200
和queryD201
是否正确。所以请小心这一点。
引用文献:
关于javascript - 如何使用应用程序脚本向 Google 幻灯片演示文稿添加连接线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61532614/