インデザインを保存したバージョンで開く。
インデザインを保存したバージョンで開く場合、
すでに、「Glee」という素晴らしいフリーウエアが存在する訳ですが、
ネットに、いい素材があったので、
また、他人様のお力をお借りして自分でも作ってみました。
インデザインだけでなく、
イラストレーターなどにも使えるかもです。
インデザインのクリエーターは、
正しく取得できているか分かりませんし、
「Glee」のように細かなバージョンまでは取得できませんので、
あしからず…
イラストレーターで使用する場合、
プリフライト機能を組み込んだりしても、
いいかも知れません。
なお今回は、インデザインCS4、CS5、CS6がインストールされていることを
前提にしたスクリプトです。
使用する方は、各自の環境に合わせて書き換えてください。
ちなみに、先人達から見たら今さらでしょうけど、
スクリプトオブジェクトなるものも初めて使用しました。
【作成方法】
ユーティリティ > AppleScript エディタを起動。
下記のAppleScriptコードを入力して、
アプリケーション形式で「inDesingOpener」などの適当な名前で保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
script DefaultApplicaiton property application_name : "Finder" property extension_list : {} on open theseItems repeat with thisItem in theseItems tell application id "com.apple.SystemEvents" set filename to name of thisItem set ext to name extension of thisItem end tell set application_name to my inddVesionCheck(thisItem) if my extension_list contains ext then tell application (my application_name) activate open thisItem end tell else try tell parent to open theseItems on error tell application application_name activate display dialog ("拡張子「" & ext & "」のファイルを開くアプリケーションは設定されていません。代わりに Finder で開いてみます") with icon 2 open thisItem end tell end try end if end repeat end open end script script OpenInCotEditor property parent : DefaultApplicaiton --property application_name : "Adobe InDesign CS6" property extension_list : {"indd"} --property extension_list : {"txt", "html", "applescript", "md", "py"} end script on open theseItems with timeout of 600 seconds --10分間は待つ。 tell OpenInCotEditor activate delay 0.1 open theseItems activate end tell end timeout end open on inddVesionCheck(thisItem) set POSIXpath to quoted form of POSIX path of thisItem try set myNumber to do shell script "sed -n '/<xmp:CreatorTool>Adobe InDesign /=' " & POSIXpath on error set myNumber to "" end try if myNumber = "" then try set myNumber to do shell script "sed -n '/<xap:CreatorTool>Adobe InDesign /=' " & POSIXpath on error set myNumber to "" end try end if try set T1 to last paragraph of myNumber set ResVersion to do shell script "echo | sed -n -e " & T1 & "p " & POSIXpath --set ResVersion to do shell script "echo | sed -n -e " & T1 & "p " & POSIXpath & " | sed -e 's/<[^>]*>//g' | sed -e 's/^[ ]*//g' " on error set ResVersion to "" end try --↓↓↓各自の環境に合わせて書き換えてください。 if ResVersion contains "Adobe InDesign 6.0" then set application_name to "Adobe InDesign CS4" else if ResVersion contains "Adobe InDesign 7.0" then set application_name to "Adobe InDesign CS5" else if ResVersion contains "Adobe InDesign CS6" then set application_name to "Adobe InDesign CS6" else set application_name to "Adobe InDesign CS6" end if return application_name end inddVesionCheck |
【使用方法】
古いバージョンのInDesignファイルの
情報を見ます( ファイルを選択して、command + i )。
その中の「このアプリケーションで開く:」の項目で
作成したスクリプト(アプリケーション)を設定します。(上図、赤枠)
それでは、動作確認に入ります。
いま設定したInDesignファイルをダブルクリックして開きます。
古いバージョンのInDesignが起動し、
問題なくファイルが開くようでしたら正常に動作しています。
さらに、すべてのInDesignファイルを
作成したスクリプト(アプリケーション)で開くようにします。
再度、InDesignファイルの情報を見て、
「すべてを変更…」をクリックすると、(上図、青枠)
すべてのInDesignファイルが
作成したスクリプト(アプリケーション)に関連づけられます。
(まあ、長々と書いていますが「Glee」と一緒です。)
【注意点】
上手く動作しなかった場合は、
Dockで起動している作成したスクリプト(アプリケーション)を
右クリック or クリック長押しなどで強制終了してください。
【少し修正】
InDesignだけなら右側の方がいいので…
‘/<xmp:CreatorTool>/=’ > ’/<xmp:CreatorTool>Adobe InDesign /=’
‘/<xap:CreatorTool>/=’ > ’/<xap:CreatorTool>Adobe InDesign /=’
参考情報
ASH Planning: AppleScript でファイルを開いてみましょ
ASH Planning: スクリプトオブジェクトを理解してみる
鳶嶋工房 / AppleScript / 入門 / スクリプトオブジェクト