自分で書かないと忘れるのでメモしておきます。
たとえばParagraphに「指定した数値だけポイントサイズを下げる」ってメソッドを生やすとか。
(function(){// Paragraph拡張// 引数に指定した数値ずつサイズを下げる。単位は無視して数値しか見ない// 成功するとtrueを返す Paragraph.prototype.downSize = function(num){var origin = this.pointSize; var size; if( num.constructor.name != "Number" ){throw"downSize Error: 引数が数値ではありません"; } size = origin - num; if( size <= 0 ) {throw"downSize Error: これ以上サイズを下げられません"; }this.pointSize = size; returntrue; }// 例:段落が一行におさまるまで0.5ずつ文字を小さくする // エラー投げられたら止まるようにしておくvar p = app.selection[0].paragraphs[0]; while(p.lines.length > 1){try{ p.downSize(0.5); }catch(e) {alert(e); break; }}}());
エラー処理はてきとーです。
Paragraph(インスタンス)のpointSizeの値しか見てないので、段落内で文字サイズが違う場合対応できない。実験だとpointSizeは最初の文字のサイズが返ってきてるみたい。