如何将 link 附加到 Apps 脚本上的形状或文本框?
How to attach a link to a shape or text box on Apps Script?
我知道如何向幻灯片添加形状,但我知道在 Google 幻灯片中,您可以 link 单击该文本框后显示另一张幻灯片。是否可以在应用程序脚本中创建一个形状,然后将 link 附加到它?
我查看了 API 文档,对是否可行感到困惑。
这是一个 Sheets/Slides 插件。
我需要做的是,当按下我创建的添加菜单上的按钮时,在 Google 幻灯片中创建一个幻灯片,并使用表格中的信息。我想创建一个文本框,当您单击它时 link 到幻灯片放映中的另一张幻灯片。我只是想让它全部自动化。
如果可以的话,我该如何将它应用到我创建的形状中?
var elementId = 'MyTextBox_001';
var pt350 = {
magnitude: 350,
unit: 'PT'
};
var requests = [{
createShape: {
objectId: elementId,
// tried linkUrl: "link";
shapeType: 'TEXT_BOX',
elementProperties: {
pageObjectId: "slide_001_001",
size: {
height: pt350,
width: pt350
},
transform: {
scaleX: 1,
scaleY: 1,
translateX: 350,
translateY: 100,
unit: 'PT'
}
}
}
},
// Insert text into the box, using the supplied element ID.
{
insertText: {
objectId: elementId,
// tried linkUrl: "link";
insertionIndex: 0,
text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
}
}];
// have tried elementId.setLinkUrl(linkHere);
是的,这是可能的。签出 Extending Google Slides and shape.setLinkUrl(url)
您可以使用以下代码创建幻灯片、添加形状并向其添加 link:
var presentationId = "<YOUR_PRESENTATION_ID>";
var newSlideId = Utilities.getUuid();
var newElementId = Utilities.getUuid();
var pt350 = {
magnitude: 350,
unit: 'PT'
};
var requests = [
{
createSlide: {
objectId: newSlideId
}
},
{
createShape: {
objectId: newElementId,
shapeType: 'TEXT_BOX',
elementProperties: {
pageObjectId: newSlideId,
size: {
height: pt350,
width: pt350
},
transform: {
scaleX: 1,
scaleY: 1,
translateX: 350,
translateY: 100,
unit: 'PT'
}
}
}
},
{
insertText: {
objectId: newElementId,
insertionIndex: 0,
text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
}
},
{
updateShapeProperties: {
objectId: newElementId,
shapeProperties: {
link: {
pageObjectId: "<YOUR_PAGE_ID>"
}
},
fields: "link"
}
}];
请注意,您需要演示文稿的 ID 和目标页面的 ID。如果愿意,您可以使用幻灯片索引作为目的地 (more information here)。
如果您在创建幻灯片插件时需要更多帮助,可以访问 this example。
如果您对此主题有任何其他问题,请随时回复。
此致
我知道如何向幻灯片添加形状,但我知道在 Google 幻灯片中,您可以 link 单击该文本框后显示另一张幻灯片。是否可以在应用程序脚本中创建一个形状,然后将 link 附加到它?
我查看了 API 文档,对是否可行感到困惑。
这是一个 Sheets/Slides 插件。
我需要做的是,当按下我创建的添加菜单上的按钮时,在 Google 幻灯片中创建一个幻灯片,并使用表格中的信息。我想创建一个文本框,当您单击它时 link 到幻灯片放映中的另一张幻灯片。我只是想让它全部自动化。
如果可以的话,我该如何将它应用到我创建的形状中?
var elementId = 'MyTextBox_001';
var pt350 = {
magnitude: 350,
unit: 'PT'
};
var requests = [{
createShape: {
objectId: elementId,
// tried linkUrl: "link";
shapeType: 'TEXT_BOX',
elementProperties: {
pageObjectId: "slide_001_001",
size: {
height: pt350,
width: pt350
},
transform: {
scaleX: 1,
scaleY: 1,
translateX: 350,
translateY: 100,
unit: 'PT'
}
}
}
},
// Insert text into the box, using the supplied element ID.
{
insertText: {
objectId: elementId,
// tried linkUrl: "link";
insertionIndex: 0,
text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
}
}];
// have tried elementId.setLinkUrl(linkHere);
是的,这是可能的。签出 Extending Google Slides and shape.setLinkUrl(url)
您可以使用以下代码创建幻灯片、添加形状并向其添加 link:
var presentationId = "<YOUR_PRESENTATION_ID>";
var newSlideId = Utilities.getUuid();
var newElementId = Utilities.getUuid();
var pt350 = {
magnitude: 350,
unit: 'PT'
};
var requests = [
{
createSlide: {
objectId: newSlideId
}
},
{
createShape: {
objectId: newElementId,
shapeType: 'TEXT_BOX',
elementProperties: {
pageObjectId: newSlideId,
size: {
height: pt350,
width: pt350
},
transform: {
scaleX: 1,
scaleY: 1,
translateX: 350,
translateY: 100,
unit: 'PT'
}
}
}
},
{
insertText: {
objectId: newElementId,
insertionIndex: 0,
text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
}
},
{
updateShapeProperties: {
objectId: newElementId,
shapeProperties: {
link: {
pageObjectId: "<YOUR_PAGE_ID>"
}
},
fields: "link"
}
}];
请注意,您需要演示文稿的 ID 和目标页面的 ID。如果愿意,您可以使用幻灯片索引作为目的地 (more information here)。
如果您在创建幻灯片插件时需要更多帮助,可以访问 this example。
如果您对此主题有任何其他问题,请随时回复。
此致