中身は置き去り、ガワだけリサイズ

[5428]中身は置き去り、ガワだけリサイズ | 投稿者:(z-) | 投稿日:2010/12/09(Thu) 12:57:17
InDesignCS3 のJavaScriptで質問です。
後にも先にもresize() の実装されていないのはCS3だけのようですが、
代替使用するべくマニュアルのtransform() の項を参照したのですが英語がさっぱりです。
選択したフレームを拡大する際、内容には拡大を反映させない書式はあるのでしょうか。
resize() だと PageItem.resize(200, 200, undefined, false, undefined)
など4番目の引数をfalseにする事で可能のようですが、transform()の場合はできるのでしょうか?
» 1
[5430]Re: 中身は置き去り、ガワだけリサイズ | 投稿者:せうぞー | 投稿日:2010/12/09(Thu) 14:56:16
transform()はInDesignの「オブジェクト」メニューの「変形...」にあたります。
この時、中身を置き去りにはできませんよね。ですからスクリプト的にもできないと思います。
フレームの大きさだけを変えたいのでしたらvisibleBoundsで不都合はありますか?

ちなみにtransformについては以前こちらにちょっとまとめたものがあります。ご参照ください。
「PageItemの変形 縲恤マ形マトリクス(transformationMatrix)の基礎縲怐v
http://d.hatena.ne.jp/seuzo/20090804/1249311877
» 2
[5432]Re: 中身は置き去り、ガワだけリサイズ | 投稿者:(z-) | 投稿日:2010/12/09(Thu) 17:20:39
せうぞーさん、ありがとうございます。
ご紹介の記事はエントリ当時に拝見しており今回の投稿前にも再読させてもらいましたが、記事タイトルの通り基礎的な事だけに留めてあるのかと思い、その気になればできるのかも、と思いまして。
確かにメニューの「変形」では無理ですね...納得しました。

現状はgeometricBoundsの再定義でしのいでますが、回転のかかっているオブジェクトの場合サインだのコサインだの計算してみても回転なしの物と比べてオブジェクトサイズに誤差が出る事があったり、一旦水平にして変形後に元の回転を与えて済ますと取り消し回数(undoHistory)がかさんでしまって、やべ、もどそ、という時けっこう混乱しがちなので(自分だけですが)、この機に模索してみようと思った次第です。

一時的にスクリプトのバージョンをCS2に落とせばresize()が使えるのですが、一度のresize()でも中身をそのままにした場合は取り消しが2回になります。一度まとめて変形してから中身だけ戻しているようです。
CS4以降にはreframe()という専用のメソッドがあるようですね。。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア