为幻灯片设置特定的 ID
Set specific ID to the slide
我有一个 Google 幻灯片主文档,我从中将特定幻灯片复制到另一个 Google 幻灯片文档中。
但是当我复制幻灯片时,我想给它一个特定的 ID (e.g. Slide_num-001
)。
我通过复制幻灯片来做到这一点,然后用我想要的 ID 复制副本,然后删除副本。它有效,但我认为它远非理想的解决方案。
请问有更好的方法吗?
我找不到任何功能,例如 setObjectID()
。
很抱歉,没有专门设置幻灯片 ID 的方法。此外,不建议设置对象的幻灯片 ID,因为它已在后台自动创建,这有悖于直觉,同时也浪费资源。这就是为什么它没有作为方法提供的原因。
我建议创建一个字典,而不是保存 Slide_num-<number>
和幻灯片 ID 的配对。
我创建了一个使用该想法的示例代码。
代码:
function setDictionary() {
// I have 5 slides as sample
var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var dictionary = {};
// Set Object ID as value to key "Slide_num-<number>"
slides.forEach(function (slide, index) {
dictionary["Slide_num-" + padLeadingZeros(index + 1, 3)] = slide.getObjectId();
});
// In your case, after copying the slide, assign the value "slide.getObjectId()" to the key "Slide_num-<number>"
// Sample:
// Sets 5th slide background to red
var slide = presentation.getSlideById(dictionary["Slide_num-005"]);
Logger.log(slide.getBackground().setSolidFill(255,0,0));
}
function padLeadingZeros(num, size) {
// Function that appends 0s to the number based on the size
// Returns "001" when num is "1" and size is "3"
var s = num + "";
while (s.length < size) {
s = "0" + s;
}
return s;
}
这样做的好处是减少了 API 调用,使其更独立于 API。
请参阅 class 幻灯片的可用方法列表参考。
参考:
如果这不是您的解决方案,我深表歉意wanted/needed。
我有一个 Google 幻灯片主文档,我从中将特定幻灯片复制到另一个 Google 幻灯片文档中。
但是当我复制幻灯片时,我想给它一个特定的 ID (e.g. Slide_num-001
)。
我通过复制幻灯片来做到这一点,然后用我想要的 ID 复制副本,然后删除副本。它有效,但我认为它远非理想的解决方案。
请问有更好的方法吗?
我找不到任何功能,例如 setObjectID()
。
很抱歉,没有专门设置幻灯片 ID 的方法。此外,不建议设置对象的幻灯片 ID,因为它已在后台自动创建,这有悖于直觉,同时也浪费资源。这就是为什么它没有作为方法提供的原因。
我建议创建一个字典,而不是保存 Slide_num-<number>
和幻灯片 ID 的配对。
我创建了一个使用该想法的示例代码。
代码:
function setDictionary() {
// I have 5 slides as sample
var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var dictionary = {};
// Set Object ID as value to key "Slide_num-<number>"
slides.forEach(function (slide, index) {
dictionary["Slide_num-" + padLeadingZeros(index + 1, 3)] = slide.getObjectId();
});
// In your case, after copying the slide, assign the value "slide.getObjectId()" to the key "Slide_num-<number>"
// Sample:
// Sets 5th slide background to red
var slide = presentation.getSlideById(dictionary["Slide_num-005"]);
Logger.log(slide.getBackground().setSolidFill(255,0,0));
}
function padLeadingZeros(num, size) {
// Function that appends 0s to the number based on the size
// Returns "001" when num is "1" and size is "3"
var s = num + "";
while (s.length < size) {
s = "0" + s;
}
return s;
}
这样做的好处是减少了 API 调用,使其更独立于 API。
请参阅 class 幻灯片的可用方法列表参考。
参考:
如果这不是您的解决方案,我深表歉意wanted/needed。