선택한 텍스트 프레임의 행 정렬

6749 단어 indesign
※ 착오 처리 등은 모두 부담
※ 이 동작을 수행하면 최종 줄에 줄 바꿈이 추가될 수 있습니다
※ 사용은 자신의 책임이 아닙니다

var myParagraphs = app.selection[0].paragraphs;
sortParagraphs(myParagraphs);

function sortParagraphs(myParagraphs){
    var tmpParagraph;
    var keyA;
    var keyB;
    var paraA;
    var paraB;
    var inSertion;
    for (var i = 0; i < myParagraphs.length; i++) {
        paraA = myParagraphs[i];
        //比較用のキーを設定。キーの取得に特殊な処理が必要な場合は
        //関数に飛ばすのがおすすめ
        //keyA = get_Sortkey(paraA);
        keyA = paraA.contents;
        if (keyA === "" || keyA === String.fromCharCode(13)) {
            continue;
        }
        for (var j=i+1; j < myParagraphs.length;j++) {
            paraB = myParagraphs[j];
                        //keyB = get_Sortkey(paraB);//関数に飛ばすならこっち!
            keyB = paraB.contents;
            if (keyB === "" || keyB === String.fromCharCode(13)) {
                continue;
            }
            if (keyA > keyB) {
                //これから動かそうとする行の行末に改行がなければ付加する
                if (paraB.characters[-1].contents != String.fromCharCode(13)) {
                    inSertion = paraB.insertionPoints[-1];
                    inSertion.contents = String.fromCharCode(13);
                }
                //行移動させます
                 paraB.move(LocationOptions.BEFORE,paraA.texts[0]);
            }
        }
    }
}
//ソートキーを取得する関数
//先頭からタブ文字までを取得とかの処理はここで実装する
function get_Sortkey(myPara) {
    return myPara.contetns;
}

좋은 웹페이지 즐겨찾기