我正在尝试编写一个功能,使用Google Apps脚本从Google幻灯片演示文稿中删除笔记。
我浏览了examples并假设我需要使用https://developers.google.com/slides/samples/writing#delete_a_page_or_page_element通过调用发言人注释将其与https://developers.google.com/slides/how-tos/notes匹配,但我无法建立链接。
Google Apps脚本新手,任何帮助表示赞赏。
答案 0 :(得分:0)
这就是我的做法。
function clearNotes(){
var presentation = SlidesApp.getActivePresentation();
var presentationId = presentation.getId();
var slides = presentation.getSlides();
var requests = [];
slides.forEach(function(slide, i) {
var slideNote = Slides.Presentations.Pages.get(presentationId, slide.getObjectId());
var slideNoteId = JSON.parse(slideNote).slideProperties.notesPage.notesProperties.speakerNotesObjectId;
var slideNotesPage = JSON.parse(slideNote).slideProperties.notesPage;
var shapeText = slideNotesPage.pageElements[1].shape.text;
if(shapeText != undefined){
requests.push({
deleteText: {objectId: slideNoteId,textRange:{type: 'ALL'}}
});
}
})
if(requests.length > 0){
var batchUpdateResponse = Slides.Presentations.batchUpdate({requests: requests}, presentationId);
}
}
希望有帮助。
答案 1 :(得分:0)
感谢最初的脚本! 不幸的是,它对我不起作用,经过几次尝试,我使它起作用了:
function clearNotes(){
var presentation = SlidesApp.getActivePresentation();
var presentationId = presentation.getId();
var slides = presentation.getSlides();
var requests = [];
slides.forEach(function(slide, i) {
var slideNote = slide.getObjectId();
var slideNotesPage = slide.getNotesPage();
var shape = slideNotesPage.getSpeakerNotesShape();
var shapeText = shape.getText();
if(shapeText != undefined){
shapeText.clear();
}
})
if(requests.length > 0){
var batchUpdateResponse = Slides.Presentations.batchUpdate({requests: requests}, presentationId);
}
}
作为一个新手,它涉及许多尝试和错误,请调试并遵循此处的指南:https://developers.google.com/apps-script/reference/slides/text-range.html#clear()
到目前为止,这是我发现的批量删除Google幻灯片演示文稿中所有笔记的唯一解决方案。
希望这会有所帮助, 拉法。
答案 2 :(得分:0)