【GAS】Googleスライドの資料を画像で一括ダウンロードする方法

スポンサーリンク
Google Apps Script

やりたいこと

Googleスライドにて資料を作成した際に、

スライド全てを画像(例えばPNG形式)にてダウンロードするときは、ファイル>ダウンロード>PNG 画像(.png、現在のスライド)を押下することで画像としてダウンロードができますが、この方法だと一枚ずつしか出力ができないため、これを一括で出力したい。

方法

①スクリプトの起動

作成したGoogleスライドのメニューから、ツール>スクリプトエディタを押下し、スクリプトを起動する。

②スクリプト上に以下コードを記述

コンソール内にコードを記述する。

↓コード

function createPresentationPngFile() {
 
// 起動中のGoogleスライド情報を取得
 const presentation   = SlidesApp.getActivePresentation();
// Googleスライドのスライド情報全量を取得
 const slides         = presentation.getSlides();
// GoogleスライドのファイルIDを取得
 const presentationId = presentation.getId();
// Googleスライドのファイル名を取得
 const fileName       = presentation.getName();
// 出力形式としてPNGを定義
 const format         = 'png';
// ファイル名のに付与する番号を設定する
 var page_num = 1;
 
// スライドごとにPNG画像形式でのダウンロードを実施する
 slides.forEach(function(slide){
  // スライドのオブジェクトIDを取得する
   const page_id = slide.getObjectId();
  // スライドをPNG形式で出力する関数(convertPresentationToPng)を呼び出す
   convertPresentationToPng(fileName,presentationId,page_id,page_num,format);  
  // ファイル名のに付与する番号を+1する
  page_num += 1;
 });  
}

//スライドをPNG形式で出力する関数
function convertPresentationToPng(file_Name,presentation_id,page_id,page_num,format) {
 
// ダウンロードURLを変数に設定
 const url = "https://docs.google.com/presentation/d/" + presentation_id + "/export/" + format + "?id=" + presentation_id + "&pageid=" + page_id;
// HTTPリクエストに必要なオプションを定義
 const options = {
   method: "get",
   headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
   muteHttpExceptions: true
 };

// HTTPリクエストを実施
 const response = UrlFetchApp.fetch(url, options);
// HTTPリクエストの結果が正常に返却された場合で条件分岐
 if (response.getResponseCode() === 200) {
   
// 親フォルダ(ファイル自身が格納されているフォルダ)を取得
  const parentFolder = DriveApp.getFileById(presentation_id).getParents();
  const folder = parentFolder.next();
// 対象フォルダにPNGファイルを作成する
  return folder.createFile(response.getBlob()).setName(file_Name + page_num + "." + format);
 }
}

※中身の解説はコード内にコメントアウトで記載しているため割愛します。

③実行

実行を押下する。

④GoogleDriveフォルダを確認

Googleスライドが保存されているGoogleDrive上フォルダを確認すると、画像がスライド分出力されている。

1枚目の資料の画像

2枚目の資料の画像

これで完了です。

終わりに

ちなみに今回は例としてPNG形式でダウンロードするコードを記述しましたが、JPEG形式にしたければURLに渡すパラメータを変更する(具体的には、上記コードの12行目を’png’から’jpeg’に変える)だけで対応できます。参考までに。

読んでいただきありがとうございました!

コメント

  1. じゅん より:

    はじめまして。
    ちょうど知りたかった内容が記載されていてとても参考になりました。
    ありがとうございます。
    ライブ配信の資料をpngに1つ1つ変換する手間が省けそうです!

タイトルとURLをコピーしました