選択アイテムをまとめて拡大縮小

[5913]選択アイテムをまとめて拡大縮小 | 投稿者:かくせい | 投稿日:2011/07/05(Tue) 14:15:49
いつも参考にさせていただいてます。
環境:OS10.4.11 InDesign CS2
JavaScript
コマンド+A(全選択)→変形パレットで拡大縮小率を入力
した状態にしたいのですが、どのようにすればよいでしょうか?
(個別に縮小は出来たのですが...)

グループ化(できればしたくない)しないと無理なのかなと思い、
下記のように書き進めたのですが

var pageObj = app.activeDocument.spreads;

for(i=0; i<pageObj.length; i++) {
for(j=0; j<pageObj[i].allPageItems.length; j++) {
pageObj[i].allPageItems[j].select(SelectionOptions.addTo);
}
gObj = pageObj[i].groups.add(app.selection);
app.activeDocument.selection = null;
}

グループ化の所で「パラメータが不正です。」と出てしまいます。
(が、ドキュメントを見るとグループ化されている)
また、すでにグループ化されたアイテムがある場合はグループ化はされていません。
この場合、グループ化したいアイテムをどう指定するのが適切でしょうか?

何卒、よろしくお願いいたします。
» 1
[5914]Re: 選択アイテムをまとめて拡大縮小 | 投稿者:流星光輝 | 投稿日:2011/07/05(Tue) 16:55:51
かくせいさん

当方の環境 WindowsXP SP2 InDesignCS2(4.0.5) にて
提示されたソースコードを実行してみましたが、
特にエラーも出ずに、グループ化されました。

特に、役立つ情報ではないかも知れませんが、ご確認ください。
» 2
[5915]Re: 選択アイテムをまとめて拡大縮小 | 投稿者:梅花藻 | 投稿日:2011/07/05(Tue) 16:56:50
allPageItemsをpageItemsに変えるだけで上手くいかないかなぁ?
» 3
[5916]Re: 選択アイテムをまとめて拡大縮小 | 投稿者:sekita | 投稿日:2011/07/06(Wed) 02:39:48
allPageItemsはグループアイテムもそのグループ内アイテムも含みますので、
ご提示された記述だと、グループおよびそのグループ内の個々のアイテムも選択することになります。
従って、ページ内にグループアイテムが存在する場合、そのグループ内アイテムを他のグループに
追加するということになり、エラーになるということだと思います。
グループ内アイテムは選択しなければいいわけですから、以下のようにすれば、いいのではないでしょうか。


var pageObj = app.activeDocument.spreads;

for(i=0; i<pageObj.length; i++) {
for(j=0; j<pageObj[i].allPageItems.length; j++) {
objParentName = pageObj[i].allPageItems[j].parent.constructor.name;
//alert(objParent);
if(objParentName == "Page"){
pageObj[i].allPageItems[j].select(SelectionOptions.addTo);
}
}
try{
gObj = pageObj[i].groups.add(app.selection);
} catch(e){
alert(e);
}
app.activeDocument.selection = null;
}


追記:上記の方法は、あくまでもallPageItemsの場合です。梅花藻さんのおっしゃる通り、
allPageItemsをpageItemsにするだけで、実はOKです。
» 4
[5917]Re: 選択アイテムをまとめて拡大縮小 | 投稿者:かくせい | 投稿日:2011/07/06(Wed) 11:32:54
流星光輝さん、梅花藻さん、sekitaさん
ありがとうございます。
pageItemsにしたところ問題なくグループ化できました。

sekitaさん、詳細な説明までありがとうございます。
参考になりました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)