InDesignのDOMをprototypeで拡張するメモ
自分で書かないと忘れるのでメモしておきます。
たとえば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; return true; } // 例:段落が一行におさまるまで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は最初の文字のサイズが返ってきてるみたい。