[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:1176) Re: [AS mi - javascript - InDesign CS] mi上からInDesign CSのjavasccriptを実行



ちっと書き直してみた


(*
miの「javascript」モードで、ツールとして登録すれば
mi上からカレントドキュメントをInDesign CSのjavascriptとして実行します。
なにか返値があるようなら「javascript」モードの新規ドキュメントとして開きます。

(c)2005 www.seuzo.jp
2005.07.03	とりあえず版
2005.07.04	新規ドキュメントの場合、保存ダイアログで保存させてから実行。拡張子が「.js」でないものは警告
*)

tell application "mi"
	if not (exists document 1) then my my_error("ドキュメントが開かれていません")
	tell document 1
		if header = ("   ファイル未定義" as Unicode text) then
			set f_path to (choose file name with prompt ("ファイルを保存してください" as Unicode text) default name "hoge.js")
			save in f_path
		else if modified then
			display dialog ("このドキュメントは保存されていません。" & return & "保存しますか?") as Unicode text buttons {"キャンセル", "SAVE"} default button 2
			save
		end if
		if not (name ends with ".js") then my my_error("拡張子が「.js」でないといけません")
		set mi_file_path to file --アクティブドキュメントのパスをget
	end tell
end tell

tell application "Adobe InDesign CS2_J"
	activate
	try
		set ans to do script mi_file_path language javascript
	on error
		my my_error("InDesign CS上でエラーになりました")
	end try
end tell

if ans is not "" then --なにかしら返値があれば、「javascript」モードで開く
	tell application "mi"
		activate
		try
			make new document at beginning with data (ans as Unicode text) with properties {mode:"javascript"}
		on error
			my my_error("返値をうまく受け取れませんでした。すいません orz")
		end try
	end tell
end if

---------------------エラー処理
to my_error(str)
	set str to str as Unicode text
	tell application "mi"
		activate
		display dialog str buttons {"キャンセル"} default button 1
	end tell
end my_error