使用Google Apps脚本和幻灯片API

时间:2018-05-21 13:09:52

标签: google-apps-script google-slides-api

我正在尝试编写一个功能,使用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脚本新手,任何帮助表示赞赏。

3 个答案:

答案 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)

Google 现在已将此选项集成到幻灯片程序中。制作副本时,您可以选择/检查是否包含注释。

Check boxes show options when creating copy of current Slides presentation