久しぶりに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); } }
上記コードを実行すると、指定した形式の同名のファイルがドライブ上に作成されます。
形式の判定処理でコード量が多いように見えますが、至ってシンプルに実装できました。
この記事へのコメントはありません。