段落内のインラインオブジェクトの再配置

[5478]段落内のインラインオブジェクトの再配置 | 投稿者:jizo | 投稿日:2010/12/22(Wed) 22:59:32
InDesign CS3を使用しています。
基本的な質問で恐縮なのですが、ご存知の方教えてください。

JavaScriptを使って、ある段落のインラインフレームとして配置されているオブジェクト
(実体は長方形フレームやグループです)を"allPageItems"で取得しています。

これを、同じ段落内の他の位置に再配置したいのですが、その方法がわかりません。

インラインフレームなので、insertionPointに対してオブジェクトをセットできるものだと思っていたのですが、
"contents"に代入しようとしても期待されているのは文字列で、オブジェクトをそのままセットすることができません。

宜しくお願い致します。
» 1
[5479]Re: 段落内のインラインオブジェクトの再配置 | 投稿者:(z-) | 投稿日:2010/12/22(Wed) 23:26:07
即物的なレスになりますが、
インラインにするオブジェクトをペーストボード上に作成しておいてapp.cut()、目的のinsertionPointを選択しておいてapp.paste()ではまずいでしょうか?
確かにかっこよくはないですけども。

MacOS10.6.5、CS3で試しましたが、いちおう
textFrameObj.parentStory.insertionPoints[0].rectangles.add();
で新規の長方形オブジェクトをダイレクトに入れるのはできました。
» 2
[5480]Re: 段落内のインラインオブジェクトの再配置 | 投稿者:mg | 投稿日:2010/12/23(Thu) 02:13:18
取得したオブジェクトを挿入点ごと複製(duplicate())すればよいかと思います。移動ってことならmove()で

例えば
var sel = app.selection[0];//story
var ob = sel.pageItems[0].parent;//insertionpoint
ob.duplicate(LocationOptions.AFTER, sel.paragraphs[3]);

4つ目の段落の後ろ(5つ目の段落のあたま)に複製されます
» 3
[5492]Re: 段落内のインラインオブジェクトの再配置 | 投稿者:jizo | 投稿日:2010/12/27(Mon) 01:39:48
お礼が遅くなりました。
(z-)さん、mgさん、アドバイスありがとうございます。

ペーストボードを利用する方法は考えたのですが、挿入点を複製する方法は思いつきませんでした。
試してみたところ意図通り動作させることができました。

どうもありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)