placeAssetで指定のドキュメントに貼り込みしたい

[3857]placeAssetで指定のドキュメントに貼り込みしたい | 投稿者:紅陽 | 投稿日:2009/11/17(Tue) 21:34:12
環境:MacOSX 10.4.11
App:IndesignCS3 (5.0.4)
言語:javascript

placeAssetで対象のドキュメントにアセットの配置をすると
最前面のドキュメントにアセットが配置されます。
何か回避方法ってあるんでしょうか?

例)
開いているドキュメント:A.indd,B.indd
開いているライブラリ:C.indl
var TargetDoc=app.documents.itemByName("A.indd");
var Asset=app.libraries.itemByName("C.indl").assets[0];
Asset.placeAsset(TargetDoc);

A.inddがアクティブの時はAのドキュメントにアセットが配置され、
B.inddがアクティブの時はBのドキュメントにアセットが配置されます。
一応bringToFront()で対象をアクティブにすると狙い通りに配置されるのですが、あまりに不格好なので。。。
どうかお解りの方いらっしゃいませんか?
» 1
[3860]Re: placeAssetで指定のドキュメントに貼り込みしたい | 投稿者:psychocat | 投稿日:2009/11/18(Wed) 10:56:47
どのドキュメントに対してコントロールするのかは、
私はいつも window の ID で指定しています。
複数のドキュメントを開いていても、同名ファイルであっても、前後関係を問わず指示できるので安心です。

ただ、私は AppleScript使いなので、下の例しか提供できません。
すみません。

tell parent of layout window id 123456 (*123456 が固有の番号*)
  ごにょごにょ
end tell
» 2
[3861]Re: placeAssetで指定のドキュメントに貼り込みしたい | 投稿者:psychocat | 投稿日:2009/11/18(Wed) 11:30:18
ごめんなさい。
投稿した後で、ライブラリーの asset で試したことがなかったので、
不安になり慌ててテストしました。

てっきり、以下のように書けばできると思っていたのですが・・・できませんね。
最前面に配置されます。

tell application "Adobe InDesign CS2_J"
   set a_asset to item 1 of every asset of item 1 of library "abcd.indl"
   place asset a_asset on (parent of layout window id 1629080)
end tell

私はふだんライブラリーは使わず、スニペットファイルを配置する方法を採用しているので、
間違ったコメントをしてしまいました。申し訳ありませんでした。

スニペットファイルの配置なら、ドキュメントのコントロールは可能です。
今も、試してみましたから間違いありません。
» 3
[3868]Re: placeAssetで指定のドキュメントに貼り込みしたい | 投稿者:紅陽 | 投稿日:2009/11/18(Wed) 22:01:17
psychocat様返信ありがとうございます。
作業の都合で複数オブジェクトをそれぞれ指定のドキュメントに配置する必要があり、
スニペットは使い辛いと思って使用していなかったのですが、試してみます。

色々確認してみたのですが
CS2(5.0.4)、CS4(6.0.0)でも同じ現象が起きました。
スクリプトの仕様なんでしょうかねぇ………?
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア