よろよろ帳

InDesign JavaScript 勉強中

グループの一部解除

スペックとアイコンがグループ化されてて普通に解除するとアイコンはグループになってるけどスペックはばらばらになるよその自動処理データにイラっとして書きました。アイコンは20%offとかで数字を検索して親グループをカット&ペーストします。段落スタイルが設定されていたらよかったのですが一番嫌な[基本段落]+でした。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var Doc=app.activeDocument;
var tmpPasteRemembersLayers=app.clipboardPreferences.pasteRemembersLayers;
app.clipboardPreferences.pasteRemembersLayers=true;
app.findGrepPreferences.findWhat="^[0-9]+";
app.findGrepPreferences.appliedFont="適用フォント名";
app.findGrepPreferences.fillColor="スウォッチ名";
var Res=Doc.findGrep();
for(var i=0; i<Res.length; i++){
    app.select(Res[i].parentTextFrames[0].parent);//グループ選択
    app.cut();
    app.pasteInPlace();
    }
app.clipboardPreferences.pasteRemembersLayers=tmpPasteRemembersLayers;
}

はじめにアイコンのテキストフレームをダイレクト選択して

alert(app.selection[0].parent.constructor.name)

でGroupを確認しました。

適用フォント名の取得は

var sel=app.selection[0];//テキスト選択
var TF=app.activeDocument.textFrames.add();
TF.contents=sel.appliedFont.name;
TF.fit(FitOptions.FRAME_TO_CONTENT);

↓参考
『レイヤーを記憶してペースト』はライブラリやスニペット配置にも効くみたい|InDesign|ぼんぷろぐ
https://www.indesignjs.de/extendscriptAPI/indesign-latest/#FindGrepPreference.html