Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2011-04-22

[][][][][]InDesignのMini Bridgeのカレントパスを素早く変更する

前回のエントリ「Mini BridgeパネルのTips」の中で、Mini Bridgeのパスを変更するのがめんどいとぶーたれました。まあ、そんな時にスクリプトですよ。ってことで書いてみました。まずは動画をごらんあれ。

D

スクリプトパネルから実行すれば、Finderの最前面のウインドウをMini Bridgeのカレントパスに変更します。

Finder上でドラッグ&ドロップもできるようになっています。アプリケーション形式の「change_path4MiniBridge.app」は(スクリプトパネルからの実行もドラッグ&ドロップも)どちらもできますが、スクリプトパネルからしか実行しないって人は「change_path4MiniBridge.scpt」を使った方が速度が早いです。

ダウンロード:change_path4MiniBridge.zip 直

コードはこんな感じです。

(*
change_path4MiniBridge
(c)2011 seuzo.jp
InDesign CS5のMini Bridgeのカレントパスを変更します。

●Useage:
スクリプトパネルから実行した場合、Finderの最前面のウィンドウをMini Bridgeのカレントパスにします。
フォルダ(またはファイル)をファイルをドラッグ&ドロップすれば、それをカレントパスにします。

●History:
2011-04-22	ver0.1	とりあえず
*)


--------------------------------------------------------●ドラッグ&ドロップされた
on open of theFiles
	tell application "Finder"
		if (length of theFiles > 1) then my my_error("ドラッグ&ドロップできるのはひとつだけです", true)
		set aFile to item 1 of theFiles
		if (kind of aFile) is not ("フォルダ" as Unicode text) then
			set current_dir to (container of aFile) as alias
		else
			set current_dir to aFile as alias
		end if
		my main(current_dir)
		
	end tell
end open


--------------------------------------------------------●起動
on run
	tell application "Finder"
		set current_dir to (insertion location) as alias --最前面のウインドウ
		my main(current_dir)
	end tell
end run


--------------------------------------------------------●メイン
to main(current_dir)
	my ver() --InDesignのバージョン確認
	tell application "Adobe Bridge CS5" to activate
	my deceive_bridge() --Bridgeの「InDesignに戻る」を確実にする
	set current_dir to (POSIX path of current_dir) as Unicode text
	my dir_return2InDesign(current_dir) --Mini Bridgeのパスを変更
end main





--------------------------------------------------------●InDesignバージョン確認ルーチン
to ver()
	tell application "Adobe InDesign CS5"
		activate
		set my_version to (version of script preferences) as real
		if my_version < 7 or my_version > 7.9 then
			activate
			my my_error("このプログラムはInDesign CS5以外では動作しません", true)
		end if
		return version
	end tell
end ver


--------------------------------------------------------●仮のドキュメントを開いて画像をリンクし、リンクをBridgeで表示させる。悪い回避方法
--Bridgeのファイルメニューからアプリケーションに戻る時、app.documents[0].chooseMenuItem("ReturnToApplication");だと、InDesignかPhotoshopかを指定できない対策。
to deceive_bridge()
	--Adobe InDesign CS5:Configuration:Icon.pngが存在するのを前提にパスを得ています。
	tell application "Finder"
		set img_path to container of (path to application "Adobe InDesign CS5")
		set img_path to (file "Icon.png" of folder "Configuration" of img_path) as alias
	end tell
	
	tell application "Adobe InDesign CS5"
		set tmp_doc to make new document
		tell page 1 of tmp_doc
			set tmp_graphic to place img_path as alias --画像を配置
			reveal in Bridge (item link of item 1 of tmp_graphic) --Brigeで表示
		end tell
		close tmp_doc saving no
	end tell
end deceive_bridge

--------------------------------------------------------●Bridgeのカレントディレクトリを変更し、InDesignに返す
to dir_return2InDesign(current_dir)
	tell application "Adobe Bridge CS5"
		--activate
		set my_js to "app.documents[0].presentationPath = '" & current_dir & "';app.documents[0].chooseMenuItem('ReturnToApplication');"
		
		do javascript my_js
	end tell
end dir_return2InDesign


----------------------------------●エラー処理
on my_error(err_str, my_stop)
	set err_str to err_str as Unicode text
	if my_stop then
		set my_stop to {"中止"}
	else
		set my_stop to {"中止", "続行"}
	end if
	tell application "Adobe InDesign CS5"
		activate
		beep
		set ANS to button returned of (display dialog err_str buttons my_stop default button 1 with icon 0) --警告ダイアログ出してストップ
		if ANS is "中止" then
			set user interaction level of script preferences to interact with all --ユーザー操作の再開
			error number -128
		end if
	end tell
end my_error

Bridgeのファイルメニューからアプリケーションに戻るのをapp.documents[0].chooseMenuItem("ReturnToApplication");と書けるんですけど、InDesignPhotoshopかを指定できないんです。それで仕方なく、InDesignのダミーのドキュメントに画像をリンクしてそこからBridgeで表示しています。BridgeはInDesignから呼ばれたので、ファイルメニューは「Adobe InDesignに戻る」になってるんですね。我ながらダメな回避方法です。うまい方法をご存知の方は教えてください。


おまけのTips

Bridgeをバリバリ使っている人はご存知かもしれませんが、Bridge本体のフォルダ移動はFinderからドラッグ&ドロップでできます。

  • フォルダ(またはファイル)をBridgeアプリケーションにドラッグ&ドロップする
  • Adobe Bridgeのパスバー、またはプレビューにフォルダ(またはファイル)をドラッグ&ドロップする

リファレンスにも書いてあります。

Creative Suite 5 * ファイルおよびフォルダー内の移動

2011-04-19

[][][][]Mini BridgeパネルのTips

InDesign CS5を使うようになって、画像などの配置にMini Bridgeパネルをメインに使うようになりました。「Mini Bridgeって何? たべられるの?」という向きには、この動画で復習してください。

Learn InDesign CS5 - Mini Bridgeを利用した画像の配置 | Adobe TV

リファレンス:Creative Suite 5 * Mini Bridge

要するに、Bridgeの小さいの*1InDesign上のパネルとして展開しているわけ。わざわざBridgeやFinderをアクティブにしなくてもドラッグ&ドロップで画像を配置できるんだな。

今日は、Mini Bridgeのさらに便利なTipsをいくつか紹介します。


スペースバーでクイックルック

Mini Bridgeで画像をプレビューするために、プレビューPodやコンテンツPod内でプレビューなどがありますが、どちらもプレビューが小さいし操作が煩雑です。こんな時、Finderライクなクイックルックが使えると便利ですよね。使えるんです。

1)Mini Bridgeパネル内で確認したい画像を選択する

f:id:seuzo:20110419182808p:image


2)スペースバーを押す。それだけ。選択した画像をフルスクリーンモードで表示します。

f:id:seuzo:20110419182809p:image


3)次の画像(または前の画像)を見たければ、矢印キーで前後できます。最初に選択した画像が複数であれば、選択画像だけを順番に表示します。

4)表示を終了するときもスペースバーを押すだけです。Escキーでも終了できます。


Mini Bridgeで表示できる画像形式は、あくまでBridgeでプレビューが見られるものだけです。Finderのクイックルックで動作しているわけじゃありません。

ここでひとつ注意したいのは、画像を選択してスペースバーを押す時に、入力モードが「英語」でなければなりません。Bridge本体では日本語入力モードでも強制的に英語モードになりますが、InDesignのMini Bridgeでは入力モードの切り替えは行われません。


InDesignのページアイテムをMini Bridgeにドラッグ&ドロップするとスニペットが保存される

Mini Bridgeは画像を配置するためだけにあるかと思えばさにあらず。InDesignのページアイテムをMini Bridgeにドラッグ&ドロップするとスニペットが保存されます。

1)InDesign上のページアイテムを選択します。

f:id:seuzo:20110419182810p:image


2)選択したページアイテムをMini BridgeパネルのコンテンツPod部分にドラッグ&ドロップします。

f:id:seuzo:20110419182811p:image


3)コンテンツPodにスニペットが登録されました。Finder上でも確認できます。

f:id:seuzo:20110419182812p:image

f:id:seuzo:20110419182813p:image


4)Mini BridgeからInDesign上に配置してみます。

f:id:seuzo:20110419182814p:image

配置時にOptionキーを押しながらクリックすれば、スニペットらしく同じ位置に配置します。


InDesignのリンクファイルを表示する

InDesignのドキュメントにリンクしている画像のみをコンテンツPodに表示できます。

1)Mini BridgeパネルからInDesignドキュメントを選択し、Controlキーを押し、「リンクされたファイルを表示」を選びます。*2

f:id:seuzo:20110419182815p:image


2)リンクされているファイルのみをコンテンツPodに表示できました。

f:id:seuzo:20110419182816p:image


目的のファイルを検索する

Mini BridgeパネルのコンテンツPodが選択状態にあるとき、キーボードを押すとその文字から始まる最初のファイルが選択できます。

1)Mini BridgeパネルのコンテンツPodを選択します。どれかのファイルが選ばれていてもかまいません。

f:id:seuzo:20110419182817p:image


2)この状態で「fig」とタイプすると「fig」で始まる最初のファイルが選択できました。

f:id:seuzo:20110419182818p:image

操作的にはFinderのフォルダ内でファイルを選ぶときと同じですね。ただし、この操作では日本語ファイル名の検索はできません。ぼくは日本語ファイル名使わないので、実害はありませんけれど。


改善されるべき点

Mini BridgeはInDesign CS5から搭載されたパネルです。ですからまだ未完成な部分もあります。*3いくつか気がついた点をまとめます。

動きが緩慢
Mini Bridgeのファイルを選んで素早くInDesignにドラッグしようとすると、たいてい失敗します。前後のファイルが選択されてしまうのです。カーソルの動きが選択なのかドラッグ&ドロップなのか判断できないようです。ファイルを選択したらひと呼吸おいてドラッグを開始しなければなりません。
配置に特化されていない
InDesign上のMini Bridgeは画像を配置するのが仕事です。ファイルの管理は本体のBridgeがすればよいこと。リネーム機能などは必要ありません。ファイル選択のタイミングによっては、ファイル名が反転してリネームモードになったりして、ちょくちょくリネームされてしまいます。Finderと違ってこの操作はアンドゥできません。
ナビゲーションが貧弱
通常の書籍の場合、InDesignのドキュメントは章ごとにフォルダ分けされリンクファイルは「Links」フォルダに入っています。章が変わるごとにいちいちナビゲーションの階層を辿ってを変更しなければなりません。「お気に入り」に追加するとBridge本体を使って後で削除しなくてはいけません。めんどくさいったらない。これについては後日スクリプトを書こうかな...

*1:バックグラウンドではBridge本体が動いています

*2:リンクファイルがひとつもないドキュメントでは、「リンクされたファイルを表示」を表示しません

*3:未完成なものを製品に載せるのもどうかと思うのですが、Adobeの社風のひとつのようです。一般ユーザーはベータテスタになるよう教育されています^^