Illustratorには、InDesignのようなプリフライト機能がなくて、InDesignユーザーから見ると、かなり不便!!(元々クリエイティブな作業をやるツールなので、まー。理解はできる)。

 Illustratorには、3種類のtextFrameがあります。  

  1. TextType.AREATEXT
  2. TextType.PATHTEXT
  3. TextType.POINTTEXT
   ※3番のPOINTTEXTには溢れること自体がなくて、文字量によって大きくなるだけ。
「1」と「2」のtextFrameの溢れ確認方法:
a = 全体の文字数 ー 段落数(改行記号数)+1(最終行は改行記号なし)
b = 各行の文字数の総和(改行記号/溢れた文字が計算されない)
a === bの場合は、溢れなし。
var r = checkOverFlowTfs(app.activeDocument);
alert("溢れ箇所: " + r);

function checkOverFlowTfs(doc) {
    var tfs = doc.textFrames;
    var L = tfs.length;
    var count = 0;
    while (L--) {
        if (tfs[L].kind === TextType.POINTTEXT) {
            $.writeln(tfs[L].contents + " はチェック必要ない");
            continue
        }
        if (isOverFlow(tfs[L])) {
            count++;
        }
    }
    return count;
    //***********************************
    function isOverFlow(pageItem) {
        //溢れた部分含めての合計文字数
        var total = pageItem.characters.length - pageItem.paragraphs.length + 1;
        var Lines = pageItem.lines;
        var L = Lines.length;
        var sum = 0;//各行の文字数(溢れた文字が数えられない!)
        while (L--) {
            sum += Lines[L].length;
        }
        return total === sum ? false : true;
    }
}