075.【Id】指定フォルダ内のOfficeデータから画像を抽出
画像がOfficeデータに貼っつけられたかたちで入稿されることがよくあります。
一つならまだしも、たくさんあると一つ一つzip化してmediaフォルダまで潜って…とするのはちょっと面倒
(Bridgeを使えば多少手軽になるかもですが、なぜかうちのBridgeはめちゃめちゃ重い)。
ということで、複数のOfficeデータ(docx/xlsx/pptx)をまとめて圧縮→解凍→画像だけ抽出するInDesignスクリプトを書きました。
挙動
- 任意のフォルダにOfficeデータを保存
- スクリプトを実行
- 実行するフォルダを問われるので、1のフォルダを指定
- 1のフォルダ内に📁作業用と📁抽出画像が生成される
- 📁作業用にOfficeデータをコピーし、圧縮
- 圧縮したデータを解凍
- 解凍したフォルダ内に📁mediaがあれば、その中身を📁抽出画像にコピー
コード
メモ
分かったこと
- getFiles()のマスクで複数の拡張子を指定する方法
getFiles()の引数として、FileまたはFolderオブジェクトを引数にとる関数を指定することができる。
この関数は、検索で見つかったファイルやフォルダごとに呼び出され、trueの場合そのファイルやフォルダが戻り値の配列に追加される。
積み残し
- 画像データのコピーやフォルダの作成がうまくいかなかったときの処理
- 画像データが無かったら📁抽出画像を削除して「画像はありませんでした」とアラート