コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

026.【Acrobat】注釈テキスト取得

※バッチシーケンスに組み込んで使う用 書いたコード var annots = this.getAnnots(); var annotsLen = annots.length; var annotsPrep = []; var annotsTxt = ""; for (var i = 0; i < annotsLen; i++) { annotsPrep.push([annots[i].page, annots[i], annot…

025.【ID】スプレッドごとに個別のinddに分割する

書いたコード var originIndd = app.activeDocument; var spreadsLen = originIndd.spreads.length; for (var i=0; i

024.【ID】特定の文字列を一括でテキスト変数にする

「2018年度」を一括で「2019年度」にしたい。ついでに来年はもっと楽したい。 書いたコード #targetengine "convertToTextVariables" var doc = app.activeDocument; // ウィンドウ作成 var myWindow = new Window("palette", "テキスト変数に置換"); var cl…

023.【ID】フォルダ内の全てのinddに対して指定したスクリプトを実行する

書いたコード // AppleScript非対応 var myFolder = Folder.selectDialog("ネイティブフォルダを選択してください"); if (!myFolder) { alert("中断します"); exit(); } else { myIndds = myFolder.getFiles("*.indd"); } var myJsx = File.openDialog("スク…

022.【ID】ページの外にあるオブジェクトを削除

書いたコード // 定規の開始位置がスプレッドの場合限定 var myDoc = app.activeDocument; var mySprds = app.activeDocument.spreads; for (var i = 0; i < mySprds.length; i++) { var mySprdBound = getSprdBounds(mySprds[i]); var myObjs = mySprds[i].…

021.【ID】複数の表の外罫を一括設定

※未完成 書いたコード #targetengine "setOuterBorder" var myDoc = app.activeDocument; var myTblStyles = []; for (var i = 0; i < myDoc.allTableStyles.length; i++) { myTblStyles.push(myDoc.allTableStyles[i].name); } myTblStyles.push("全ての表"…

020.【ID】複数の列幅を一括設定

書いたコード #targetengine "setColumnsWidth" var doc = app.activeDocument; var sel = doc.selection; var selNum = sel.length; var myColumns = []; var myWidths = []; // セルの位置・セル内マージン・行長を取得 var myCells = sel[0].cells var my…

019.【ID】1列の中で行長が最も長いセルが中央揃えになるよう他の行のインデントを設定

こんな感じにしたい。 書いたコード // * 横組み限定 * var doc = app.activeDocument; var sel = doc.selection; var selNum = sel.length; var stopFlag = false; var cellProps = []; // 選択対象が複数でなければ止める if (selNum < 1) { alert("複数の…

018.【ID】1列の中で行長が最も長いセルが中央揃えになるよう他の行の小数点揃えタブを設定

こんな感じにしたい。 書いたコード // * 横組み限定 * // * ピリオドが複数含まれるケースには未対応 * var doc = app.activeDocument; var sel = doc.selection; var selNum = sel.length; var stopFlag = false; var cellProps = []; // 選択対象がセルで…

017.【ID】別名同値のCMYKスウォッチを統合する

#targetengine "mergeSwatches" var doc = app.activeDocument; var docClrs = doc.colors; var clrsProp = []; var clrsNames = []; var docClrsLen = docClrs.length; var sameClrs = []; var sameClrsArrs = []; var cnt = 1 // デフォルトと無名以外のco…

016.【ID】電卓パネルを表示

書いたコード #targetengine "calculator" var myDlg = new Window("palette", "電卓"); var main = myDlg.add("group {alignChildren: 'left', orientation: 'row'}"); var leftColumn = main.add("panel", undefined, "計算式"); var formula = leftColumn…

015.【ID】別名同値のCMYKスウォッチを調べる

書いたコード var doc = app.activeDocument; var docClrs = doc.colors; var clrsProp = []; var docClrsLen = docClrs.length; var alertTmp = []; var alertTxt = ""; var cnt = 1 // デフォルトと無名以外のcolorの情報を取得 for (var i = 0; i < docCl…

014.【ID】複数の段落スタイルの正規表現スタイルを一括設定する

書いたコード #targetengine "addNestedGrepStyles" var doc = app.activeDocument; var pStyles = doc.allParagraphStyles pStyles.splice(0, 2); // 基本段落と段落スタイルなしを除外 var pStylesNames = []; var pStylesLen = pStyles.length; var cStyl…

013.【ID】別名同値の段落スタイルがあったらアラート

※未完成 書いたコード var doc = app.activeDocument; var temp = doc.allParagraphStyles var pStyles = doc.allParagraphStyles.splice(2, temp.length - 2, ); // 基本段落と段落スタイルなしを除外 var combinations = []; var propertiesOfStyle1 = [];…

012.【ID】選択した2つのオブジェクトの距離を取得

書いたコード #targetengine "getDistance" var i = 0; var doc = app.activeDocument; var selObjs = doc.selection; var resultX = ""; var resultY = ""; if (selObjs.length !== 2) { alert("2つのオブジェクトを選択してください"); } else { // X軸の…

011.【ID】複数の段落スタイルに同じ設定を施す

書いたコード #targetengine "addProperty" var doc = app.activeDocument; var allPstyles = doc.allParagraphStyles; var allPstylesLen = allPstyles.length; var pstyles = []; // [基本段落]と[段落スタイルなし]以外の段落スタイル var pstylesNames =…

001~010 不明点メモ

各記事からのざっくり抜き出し。 語義が分からない系 toSpecifier() めちゃめちゃ便利だけど、いまひとつどういったものなのか分からずうまく活用できなかった。 オブジェクトモデルビューアによると「Retrieves the object specifier」… $.writeln(objs[j].…

010.【ID】段落スタイル名をまとめて変更

書いたコード #targetengine "renamePstyles" var doc = app.activeDocument; var allPstyles = doc.allParagraphStyles; var allPstylesLen = allPstyles.length; var pstyles = []; // [基本段落]と[段落スタイルなし]以外の段落スタイル var pstylesNames…

009.【ID】段落スタイル名にまとめて連番を振る

書いたコード #targetengine "numberPstyles" var doc = app.activeDocument; var pstyles = doc.allParagraphStyles; var pstylesLen = pstyles.length; var pstylesNames = []; for (var i = pstylesLen - 1; i > 1; i--) { pstylesNames.push(pstyles[i].…

008.【ID】配置した画像の読み込みオプションを変更

書いたコード var i = 0; var doc = app.activeDocument; var tgt = app.activeDocument.selection[0]; if (doc.selection.length !== 1) { alert("対象を1つ選択してください") } else { try { var linkPath = tgt.itemLink.filePath; var linkParent = tgt…

007.【ID】リンク先が同階層のLinkフォルダ内でなかったらアラート

追記(2021/09/13) 書き直しました。 書いたコード var myDoc = app.activeDocument; if (!myDoc.saved) { alert("保存して") } else { var inddFolder = myDoc.filePath.fsName; var inddFolderReg = inddFolder.split("\\").join("\\\\") var myLinks = m…

006.【ESTK】フォルダ名を一括変更

書いたコード /* 以下のようなテキストデータを作成する C:/Users/ユーザー名/Desktop/01_中国/ [タブ] C:/Users/ユーザー名/Desktop/02_香港/ C:/Users/ユーザー名/Desktop/03_台湾/ [タブ] C:/Users/ユーザー名/Desktop/04_韓国/ * "/"は"\"でも可 * …

005.【ESTK】フォルダを一括作成

書いたコード /* 以下のようなテキストデータを作成する C:/Users/ユーザー名/Desktop/01_中国/ C:/Users/ユーザー名/Desktop/02_香港/ C:/Users/ユーザー名/Desktop/03_台湾/ * "/"は"\"でも可 * パスの前後にダブルクオーテーションはつけない */ var txtO…

004.【ESTK】txtデータを結合

書いたコード ※windows用 ※Shift-JIS、UTF-8限定 var UTF8Chk = false; var otherEncdChk = false; var txtFiles = File.openDialog("テキストファイルを選択してください","*.txt",true); if (txtFiles == null){ alert ("中断しました") } else { var tFLe…

003.【ID】選択したクエリ一括起動

書いたコード #targetengine "doQueries" var myDoc = app.activeDocument; var myAllQuery = []; var myAllQueryNames = []; var myAllQueryMode = []; var myQueryFolder = new Folder(Folder.userData + "/Adobe/InDesign/Version " + getVersion() + "-J…

002.【ID】任意のidのオブジェクトを探す

書いたコード ※未完成 var objs=app.activeDocument.stories.itemByID(107685); // ここでid指定 if (objs.hasOwnProperty("select")){ objs.select(); }else{ switch (objs.constructor.name) { case "Story": var tfLen = objs.textContainers.length; for…

001.【ID】開いているドキュメントを全て保存せず閉じる

書いたコード var docLen=app.documents.length; for(var i=0;i