textWrap2.jsx
きのうのヤツを少しだけ汎用的っぽく。ホントに少しだけ(^^;
21日にアップしたんだけど、それからまたちょっと書き直した。
mgさんの diary NET. 1mg より
InDesign+ScriptUI_ダイアログ外骨格をInDesignでつくる
を利用してダイアログのレイアウトを少しだけ整えて、textWrapType*1 と textWrapSide も選択できるようにした。
/* 2010.04.22/09:00作成 (C)CopyRight k_iki http://d.hatena.ne.jp/k_iki/ スクリプト作成環境:Windows XP sp3 / InDesign CS3 v5.0.4 選択中のページアイテムに回り込みを設定 *回り込み方法の反転=非対応 *輪郭オプション=非対応 */ ////////////////////////////////////////////エラー処理 function myerror(mess) { if (arguments.length > 0) { alert(mess); } exit(); } ////////////////ドキュメントと選択オブジェクトの有無をチェック if (app.documents.length == 0) {myerror("ドキュメントが開かれていません")} var myDoc = app.activeDocument; if (myDoc.selection.length == 0) {myerror("オブジェクトを1つ以上選択してください")} ////////////////ダイアログ var dlg=new Window('dialog', 'textWrap' , [0, 0, 250, 266]); dlg.center(); dlg.add('statictext' , [85, 25, 100, 41] , '上' , {multiline : true}); var m_top = dlg.add('edittext' , [105, 23, 155, 41] , '0' , {multiline : false}); dlg.add('statictext' , [20, 55, 35, 71] , '左' , {multiline : true}); var m_left = dlg.add('edittext' , [40, 53, 90, 71] , '0' , {multiline : false}); dlg.add('statictext' , [150, 55, 165, 71] , '右' , {multiline : true}); var m_right = dlg.add('edittext' , [170, 53, 220, 71] , '0' , {multiline : false}); dlg.add('statictext' , [85, 85, 100, 101] , '下' , {multiline : true}); var m_bottom = dlg.add('edittext' , [105, 83, 155, 101] , '0' , {multiline : false}); dlg.add('statictext' , [25, 121, 125, 137] , '回り込みモード' , {multiline : true}); var modeList = dlg.add('dropdownlist' , [25, 141, 225, 159] , ["境界線ボックスで回り込む","オブジェクトのシェイプで回り込む","オブジェクトを挟んで回り込む","次の段へテキストを送る","回り込みなし"]); modeList.selection=0; dlg.add('statictext' , [25, 174, 125, 190] , '回り込みサイド' , {multiline : true}); var sideList = dlg.add('dropdownlist' , [25, 194, 225, 212] , ["左右両サイド","最大領域","左サイド","右サイド","ノド元から離れたサイド","ノド元に向かったサイド"]); sideList.selection=0; dlg.add('button' , [92, 232, 157, 256] , 'ok' , {name: 'ok'}); if(dlg.show()==true){ var ue = m_top.text; var hidari = m_left.text; var migi = m_right.text; var sita = m_bottom.text; var myMode = modeList.selection.index; var mySide = sideList.selection.index; if (myMode == 0) { var my_Mode = 1651729523; } else if (myMode == 1) { var my_Mode = 1835233134; } else if (myMode == 2) { var my_Mode = 1650552420; } else if (myMode == 3) { var my_Mode = 1853384306; } else { var my_Mode = 1852796517; } if (mySide == 0) { var my_Side = 1953981043; } else if (mySide == 1) { var my_Side = 1953975411; } else if (mySide == 2) { var my_Side = 1953983603; } else if (mySide == 3) { var my_Side = 1953985139; } else if (mySide == 4) { var my_Side = 1953980787; } else { var my_Side = 1953985651; } } else { myerror("処理を中断しました"); } ////////////////実行 var sel = app.selection; for (var i=0; i<sel.length; i++){ sel[i].textWrapPreferences.textWrapType = my_Mode; //CS4: textWrapMode sel[i].textWrapPreferences.textWrapSide = my_Side; sel[i].textWrapPreferences.textWrapOffset = ([ue,hidari,sita,migi]); }
*1:CS4におけるtextWrapMode