よろよろ帳

InDesign JavaScript 勉強中

PDF書き出しプリセットの保存場所

ライブラリ/Application Support/Adobe/AdobePDF/Setting
TimeMachineのライブラリから取り出したい場合
新規ウィンドウ→フォルダへ移動…→アカウントフォルダをドラッグ+"/l"
↓参考
TimeMachineバックアップの「ライブラリ」ってどうやって表示するんだっけ – 教えてApple先生

選択して1個目に合わせる

大きさとか位置とかまとめて変えたいときに。

//左上基準で大きさ合わせる
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;
for(var i=1; i<sel.length; i++){
    var GB1=sel[0].geometricBounds;//1個目の座標
    var W=GB1[3]-GB1[1];//幅
    var H=GB1[2]-GB1[0];//高さ
    var GB2=sel[i].geometricBounds;
    sel[i].geometricBounds=[GB2[0],GB2[1],GB2[0]+H,GB2[1]+W];
    }
}
//天に合わせる
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;
for(var i=1; i<sel.length; i++){
    var GB1=sel[0].geometricBounds;
    var GB2=sel[i].geometricBounds;
    sel[i].geometricBounds=[GB1[0],GB2[1],GB2[2],GB2[3]];
    }
}
//底に合わせる
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;
for(var i=1; i<sel.length; i++){
    var GB1=sel[0].geometricBounds;
    var GB2=sel[i].geometricBounds;
    sel[i].geometricBounds=[GB2[0],GB2[1],GB1[2],GB2[3]];
    }
}
//右に合わせる
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;
for(var i=1; i<sel.length; i++){
    var GB1=sel[0].geometricBounds;
    var GB2=sel[i].geometricBounds;
    sel[i].geometricBounds=[GB2[0],GB2[1],GB2[2],GB1[3]];
    }
}
//左に合わせる
app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;
for(var i=1; i<sel.length; i++){
    var GB1=sel[0].geometricBounds;
    var GB2=sel[i].geometricBounds;
    sel[i].geometricBounds=[GB2[0],GB1[1],GB2[2],GB2[3]];
    }
}

イラレの見つからないフォントはブリッジで

ポストスクリプト名、馴染みのないフォントだとわかりにくい…やめてほしい…。

Bridgeは日本語表記で明瞭。

逆にインデザインファイルは英語表記ですね何故?
統一希望。


MORISAWA PASSPORT収録書体名一覧 | ダウンロード | サポート | 株式会社モリサワ
モリサワexcel一覧表ありますがいちいち調べるのもめんどくさいです

文字フレーム色てれこ

あしらい替えなどに。テキストの塗りとフレームの塗りを入れ替えます。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection;//テキストフレーム選択
for(var i=0; i<sel.length; i++){
    var FC=sel[i].fillColor;
    if(sel[i].fillColor.name=="None")FC="Paper";//「なし」なら「紙色」
    var FT=sel[i].fillTint;
    var TC=sel[i].parentStory.fillColor;
    var TT=sel[i].parentStory.fillTint;
    sel[i].fillColor=TC;
    sel[i].fillTint=TT;
    sel[i].parentStory.fillColor=FC;
    sel[i].parentStory.fillTint=FT;
    }
}

選択サイズで四角

下請仕事であやふや原稿箇所の注意喚起に黄色をかぶせる作業があり、Y100なのに黄アミと呼んでいてもやっとしています。100ならベタやん!

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel = app.activeDocument.selection;
var pg=sel[0].parentPage;
var rec=pg.rectangles.add();
rec.geometricBounds=groupy_bon(sel);
rec.appliedObjectStyle=app.activeDocument.objectStyles[0];//いったんオブジェクトスタイルなしに
rec.fillColor= "スウォッチ名";
rec.transparencySettings.blendingSettings.blendMode = BlendMode.MULTIPLY;//乗算
app.activeDocument.selection = null;//選択解除

function groupy_bon (sel) {
   var t = [], l = [], b = [], r = [];
   for (var i=0, iL=sel.length; i < iL ; i++) {
       var bo = sel[i].geometricBounds;
       t.push(bo[0]);
       l.push(bo[1]);
       b.push(bo[2]);
       r.push(bo[3]);
   };
   var groupyBon = [
       t.sort(function(a,b){return a > b})[0],
       l.sort(function(a,b){return a > b})[0],
       b.sort(function(a,b){return a < b})[0],
       r.sort(function(a,b){return a < b})[0]
   ];
   return groupyBon;
}
}

↓参考
選択したボックスをドキュメントサイズの左右センターに移動したい - InD-Board 過去ログ《InDesignの勉強部屋 BBS・掲示板》


テキストは下線の文字スタイル作ってショートカット設定で適用!したらば[基本段落]+で文字スタイルもりもりのデータで絶望……。

app.doScript (main, ScriptLanguage.JAVASCRIPT, [], UndoModes.FAST_ENTIRE_SCRIPT);
function main (){
var sel=app.activeDocument.selection[0];//テキスト選択
var pg=sel.parentTextFrames[0].parentPage;
var Q=sel.ascent;//pointSizeは単位がめんどくさかった
var X=sel.horizontalOffset;
var Y=sel.baseline;
var X2=sel.endHorizontalOffset
var rec=pg.rectangles.add();
rec.geometricBounds=[Y-Q-0.2,X-0.2,Y+0.2,X2+0.2]//なんとなく数値プラス
rec.appliedObjectStyle=app.activeDocument.objectStyles[0];//[なし]にする
rec.fillColor= "スウォッチ名";
rec.transparencySettings.blendingSettings.blendMode = BlendMode.MULTIPLY;//乗算
app.activeDocument.selection = null;
}

↓参考
Indesignのスクリプト-座標について | 大光印刷株式会社・ダイコウクリエ株式会社
parentPageのparent - DTPab
sel.parentPageと書いてひっかかり助けてもらいました。

idml書き出し

フォルダ内のinddデータと同階層にidmlを書き出します。

var dFol=Folder.selectDialog("フォルダを選択してください");
var fList=[];
findF(dFol);
for(var i=0; i<fList.length; i++){
    app.open(File(fList[i]));
    var Doc=app.activeDocument;
    var savePath =Doc.filePath.fsName+"/"+ Doc.name.replace(/\.indd$/i, ".idml");
    Doc.exportFile(ExportFormat.INDESIGN_MARKUP, savePath);
    Doc.close(SaveOptions.no);
    }

function findF(fol){
    var F=fol.getFiles();
    for(var i=0; i<F.length; i++){
        if(/^[^\.].+\.indd$/i.test(F[i].name)){//不可視ファイル避け
            fList.push(F[i].fsName);
            }
        if(F[i].constructor.name=="Folder"){
            findF(F[i]);
            }
        }
    }
alert ("done!");