Google 프레젠테이션에서 프레젠테이션을 양산한 메모

여러가지 놀고 있는 가운데, 슬라이드 100장 정도를 양산하고 싶어졌지만, 수동으로 하는 것은 뼈가 부러지지만, mac에 들어 있는 keynote의 방법은 잘 모르기 때문에, google 슬라이드라면 스크립트 써서 할 수 있지 않을까 생각해 본 메모입니다.
놀이로 했기 때문에, 그렇게 깊게 쫓고 있지 않지만, 기억을 따라 가볍게 메모를 남깁니다.

Google 프레젠테이션 준비



사용할 Google 프레젠테이션을 준비합니다.

파일이 신규 작성되면, 슬라이드 한 장이 붙어 있는데, 혼란스럽기 때문에 지웠습니다.
적선 부분은 후술한다.

스크립트 준비




화면 도구 → 스크립트 편집기를 선택하여 GoogleAppsScript 화면을 엽니다.

초기 화면에서 이런 칸지.
먼저 gs 파일이 있기 때문에 여기에 써 주면 괜찮습니다.
이 프로젝트를 저장합니다.

스크립트 상세



이 샘플 을 참고로 작성.

코드.gs
// ファイルのURLを見る
var presentationId = 'AAAAAABBBBBBBCCCCC';

//スライドを50枚作る
function createFiftySlide(){
  for(var i=1; i<=50; ++i){
    var pageId = Utilities.getUuid();

    // スライドのページを作成
    var requests = [{
      "createSlide": {
        "objectId": pageId,
        // 何ページ目に入れるか。最初=0
        "insertionIndex": i-1,
      }
    }];
    var slide = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log("Created Slide with ID: " + slide.replies[0].createSlide.objectId);

    //作成したスライドにページの文字を入れる
    var pageElementId = Utilities.getUuid();
    var requests = [{
      "createShape": {
        "objectId": pageElementId,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }, {
      "insertText": {
        "objectId": pageElementId,
        // 入れるテキスト
        "text": "Page" + i,
        "insertionIndex": 0
      }
    }];
    var response = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log("Created Textbox with ID: " + response.replies[0].createShape.objectId);

  }
}

사실은 100장을 단번에 만들고 싶었지만, 해보면 제한이 걸려 50장까지밖에 무리였으므로, 50장씩 만듭니다. 그래서 2회 실행하면 100장 만들 수 있습니다.
첫번째 presentationId는 만든 슬라이드의 https://docs.google.com/presentation/d/AAAAAABBBBBBBCCCCC/edit 라는 칸지로 나오는 URL의 AAAAAABBBBBBBCCCCC 부분입니다.
처음에 나온 사진에 붉은 선을 그려 보았습니다. (/edit를 지웠다…)

GoogleSlidesAPI 사용



저장된 프로젝트의 GoogleSlidesAPI를 사용 설정합니다.
htps : // 이런. 로 ゔぇぺぺrs. 오, ぇ. 이 m/아피 s/ぃb 등 ry/sぃ에서 s. ㅇㅜㅜㅜㅜ 코m/로 이동하여 GoogleSlidesAPI를 사용 설정합니다.

실행해보기




빨간색 사각형으로 둘러싸인 곳에 써 있는 것이 실행되는 함수.
방금 작성한 샘플이라면 createFiftySlide가 실행해야하는 함수.
그리고, 원으로 둘러싸인 재생 버튼 같은 것을 누르면 실행된다.
어쩌면 처음 실행했을 때 파일 편집 권한을 허가하도록 메시지가 나올까 생각하기 때문에 허가하면 슬라이드를 양산할 수 있다.

결과



이런 칸지.


마지막으로



GoogleAppsScript는 전에 조금만 Fuck했는데, 그 때와 화면이 바뀌고 있을까, 깨끗해져서 기뻤다.
또한 뭔가 놀고 싶다고 생각합니다.

좋은 웹페이지 즐겨찾기