Google関連

[Google Apps Script]Googleスライドのプレゼンテーションを他形式に変換する

久しぶりにGASネタです。
ドライブにある複数のプレゼンテーションをPowerPoint形式に変換する必要があり、手作業で行うのは面倒くさかったので、簡単なスクリプトを書くことにしました。

仕組みは下記記事と大体同じです。
ファイルメニュー → ダウンロード → 各形式 を実行したときのURLを叩けば良いだけですね。

折角なのでPowerPoint以外、PDFやPNG、JPGといった形式にも対応させることにしました。

function myFunction() {
  const id = "(プレゼンテーションID)";
  const file = convertPresentation(id, "pptx");
  console.log(file.getName());
}

//プレゼンテーションを他形式に変換してドライブに保存、Fileを返す
//※JPEG, PNG, SVGは最初のスライドのみ
function convertPresentation(presentation_id, format) {
  format = format.toLowerCase();
  let ext = format;
  switch (format) {
    case "pptx":
    case "odp":
    case "pdf":
    case "txt":
    case "png":
    case "svg":
      break;
    case "jpg":
    case "jpeg":
      format = "jpeg";
      ext = "jpg";
      break;
    default:
      format = "pptx";
      ext = "pptx"
      break;
  }
  const url = "https://docs.google.com/presentation/d/" + presentation_id + "/export/" + format;
  const options = {
    method: "get",
    headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    muteHttpExceptions: true
  };
  const res = UrlFetchApp.fetch(url, options);
  if (res.getResponseCode() === 200) {
    const prs = SlidesApp.openById(presentation_id);
    return DriveApp.createFile(res.getBlob()).setName(prs.getName() + "." + ext);
  }
}

上記コードを実行すると、指定した形式の同名のファイルがドライブ上に作成されます。
形式の判定処理でコード量が多いように見えますが、至ってシンプルに実装できました。

11回目のMicrosoft MVP受賞報告前のページ

表示モードを変更するPowerPointマクロ次のページ

関連記事

  1. Google関連

    [Google Apps Script]OAuth認証(2.0)が必要なWeb APIを利用する。

    前回の記事ではGoogle Apps Scriptを使ってWebアプリ…

  2. Office関連

    Google Docs APIを使ってGoogle ドキュメントを操作するVBAマクロ

    前回の記事で新しく追加されたGoogle Docs APIを紹介しまし…

  3. Google関連

    Google Apps ScriptでVoiceText Web APIを呼び出す。

    ・モヤさまのショウ君にいろいろ喋らせるVBAマクロ(1)//www…

  4. Google関連

    スプレッドシートをWeb APIにできるサービスを使ってみた

    ※ 本記事は@kuwazzyさんの記事に続く「Web API Adve…

  5. Google関連

    [Google Apps Script]Google フォームとkintoneを連携させる方法

    Webフォームで入力された回答を、直接kintoneのアプリに保存した…

  6. Google関連

    [Google Apps Script]スプレッドシートのセル範囲に指定した値が含まれているかを判定…

    先日、もり(@moripro3)さんから、「スプレッドシートの二次元配…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP