よろよろ帳

InDesign JavaScript 勉強中

文字のアウトライン

記号フォントをあしらいに使う時などに。一覧ストックからフレーム選んでアウトラインかけると全部グループ化されて、解除しても1行まるっと複合パスになってしまいます。1文字ずつバラしたい。

Big Cheese | Adobe Fonts

↑ 2つ目のスクリプトでアウトライン
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var Doc=app.activeDocument
var sel=Doc.selection[0];//テキストフレーム選択
for(var i=0; i<sel.characters.length; i++){
    var Ot=sel.characters[i].createOutlines(false);//trueだとインラインになる/falseは元が残る
    Doc.selection=Ot;
    Doc.selection[0].overprintFill=false//元が黒だとオーバープリントにチェック入るの回避
    }
sel.remove()//元消去
}

上記だと改行やスペース混じりだとうまくいかないので検索でやってみました。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.ENTIRE_SCRIPT);
function main (){
var Doc=app.activeDocument
var sel=Doc.selection[0];//テキストフレーム選択
app.findGrepPreferences.findWhat = ".";//改行以外
var Res=sel.findGrep();
//alert (Res.length)
for(var i=0; i<Res.length; i++){
    try{var Ot=Res[i].createOutlines(false);
        Doc.selection=Ot;
        Doc.selection[0].overprintFill=false;
        }catch(e){}//tryはタブとかスペースあったらエラー出たので
        }
    sel.remove();
    }

コマンドZで戻れるから何にでも
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){命令}
を付け足してましたがこれは繰り返しの部分が効かなくなる…。

↓参考(FAST_をとる)
UndoModes.FAST_ENTIRE_SCRIPTとisValidのバグ(InDesignスクリプト)|InDesign|ぼんぷろぐ