Quantcast
Channel: Planet DTP@jp
Viewing all articles
Browse latest Browse all 4833

chalcedony: InDesignのDOMをprototypeで拡張するメモ

$
0
0

自分で書かないと忘れるのでメモしておきます。

たとえば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は最初の文字のサイズが返ってきてるみたい。


Viewing all articles
Browse latest Browse all 4833

Trending Articles