空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

OmniGraffleの絵を各種フォーマットに変換するドロップレット

OmniGraffleというのは,Macを買うと無料でバンドルされてくるお絵描きソフト。WindowsでいうところのVisioのようなソフトであるが,これがとても使いやすくて気に入っている。OmniGraffleで描いた絵は,メニューから各種フォーマットへエクスポートすることが可能なのだが,スライドや文書の執筆のために何十枚とストックが溜まってくると,これを一気にバッチ処理したくなることがある。何とか,自動化する術は無いものかと探してみたところ,AppleScriptで実現可能であることが分かった。

on open drop_items
  tell application "OmniGraffle"
    set num_items to count drop_items
    repeat with i from 1 to num_items
      set obj to item i of drop_items
      set png to (obj as text) & ".png"
      set pdf to (obj as text) & ".pdf"
      open obj
      save the first document in file png
      save the first document in file pdf
      close the first document
    end repeat
  end tell
end open

このスクリプトをAppleScriptエディタで編集して,アプリケーションとして保存すればOK。後は,作成したアプリケーションに.graffleファイルをドロップするだけで「ファイル名 + (.pdf|.png)」を作成してくれる(複数投入可能)。OmniGraffleのエクスポート機能が対応しているフォーマットであれば,拡張子を変えるだけで他の形式のファイルも書き出せるはず。AppleScript的にもっとスマートなやり方があるのかも知れないけれど,コピペコーディングではこれが精一杯。