ExtendScript
前回までのあらすじ 紆余曲折を経て、選択しているオブジェクトをなんとか整列させるところまでできました。オブジェクトの移動だけならObject.positionプロパティに配列を渡すだけでいいんですね。 また、geometricBounds、controlBounds、visibleBoundsの…
前回までのあらすじ 前回のコード 今日の目標 座標を取得する 3つのBounds オブジェクトを整列しよう で、結局どうやって移動するの 0番目のオブジェクトにあわせて整列する 前回までのあらすじ ちゃんと続きましたw 選択しているオブジェクトがどんな順番で…
はじめに どんなスクリプトを作るか オブジェクトを捕まえる どういう順番で並んでいるのか 色成分って…? 色成分を配列に取得する関数 選択したオブジェクトの順番がわかった はじめに 職場でスクリプトの制作依頼をもらわない限り、僕は基本的にIllustrato…
お遊びついでということで、Fizz Buzzもやってみました。 普通にやってもつまらないので、Fizz Buzzだけで3種類です。 普通にFizz Buzz for (var i=1; i<=100; i++){ if (i%3 === 0 && i%5 === 0) $.writeln("Fizz Buzz"); else if (i%3 === 0) $.writeln("F…
先日見つけたQiitaの記事が面白そうだったので、僕もExtendScript(ES3ベースのAdobe拡張JavaScript)で遊んでみました。 もっといろいろ機能を持たせられそうだし、もっと効率的なコードにできそうなんですけど、ひとまずできたものはできたということで。 …
同僚から、初めて実行した時と2回目に実行した時とで、スクリプトの動作を変えたいがどうすればいいか?という質問をもらいました。 せっかくなので「実行する回数によって処理を変える方法」について(もちろんInDesignのスクリプトです)説明したいと思い…
cs5.xyz お〜まちさん(CS5)が以前の東京DTP勉強会で話していらっしゃった、希望者がいればInDesignを使ったJavaScript(ExtendScript)の勉強会を開催しますというお話、実現することになりました。 詳細は上記リンクより確認してください。 で、なんで僕…
【訂正 2018.9.4】一部表記を訂正しました(赤字部分)。 なんか前回も検索についての記事だったんですけど、今回もたまたま検索に関する記事です。やっぱりよく使うInDesignの正規表現検索。 で、InDesignの正規表現検索は標準機能ながら強力で使いやすいの…
何度か書いていますが、ExtendScriptはECMAScript3なので、ES5で実装されたJSON.parseメソッドやJSON.stringifyメソッドが使えません。 これを使えるようにするためには、JSONライブラリを実装します。 まずはここから「json2.js」をダウンロードします。 Gi…
【4/5 21:56 戻り値の表記にアドバイスをいただいたので反映させました】 【4/6 09:10 findTextメソッドとfindGrepメソッドの設定をクリアするコードを追記し、indexOfメソッドとlastIndexOfメソッドのコードのミスを修正しました】 この前のもくもく会で、J…
大した話じゃないのですが、スコープ内で#includeして外部スクリプトを読み込む場合、当然スコープが適用され、スコープの外からは参照できなくなります。 一方、prototype拡張はこれまた当然ながらスコープなど関係なく拡張できます。 このことを利用すると…
改めまして、先日、DTPerのスクリプトもくもく会#6を開催しました。 いろいろありましたので、前回記事もお目通しください。 保留中の宿題まとめ 開いているウィンドウの数を調べたい 座標を調べて比較しよう 余談 いただいた質問 everyItemメソッド イベン…
はじめに 動作画面 コード 説明など ダウンロード はじめに 繁忙期も佳境になり、仕事に忙殺されております。 しかしだからこそ、スクリプトという享楽に打ち込んでしまうのもまた必然…。 それはさておき、できそうだなと思って取り組んでこなかったスクリプ…
大した内容ではないのですが、ちょっとしたInDesignの不具合を見つけました。けっこう限定的なので普段の組版へはあまり大きな影響はないと思います。結果として2つの不具合を紹介しますが、恐らく原因は同じです。 では本題です。 InDesignの書式メニューに…
2018年最初のもくもく会でしたが、おかげさまで大盛況のうちに終わりました。ご参加のみなさま、そして会場を貸してくださったYUIDEAさま、ありがとうございました。今年もゆる〜く続けていくつもりですので、よろしくお願いします。 さて、もくもく会でいた…
【追記】したたか企画さんからのリプライを追記しました。ありがとうございます。 やりたいこと 正攻法のif文 三項演算子 XOR演算子 XOR演算子とは ビット演算子利用時の注意点 否定演算子 やりたいこと 字形パネルをショートカットで閉じたり開いたりしたい…
(訂正 2017.11.11 11:09)CC2017では、古いドキュメントでも再現します。 (追記 2017.11.11 15:00)対策用のイベントスクリプトを追記しました。 (追記 2017.11.11 22:20)検証バージョンを追記しました。 (追記 2017.11.13 16:00)注意とスクリプトを追…
配列から重複要素を削除する関数 説明 注意点 雑感 配列から重複要素を削除する関数 配列から重複要素を削除するには、filterやsetなどを使うといいそうです*1。 しかし僕が使うのは当然ながらExtendScript(以下ExS)。ECMAScript(JavaScriptの標準仕様*2…
(10/24 10:15 追記) 現れた場所に関係なく、変数の宣言はコードを実行する前に処理されます。var を伴って宣言した変数のスコープは実行コンテキスト (execution context)であり、これは変数を含んでいる関数、または関数の外で宣言された変数はグローバル…
イラレのスクリプトを久しぶりに作ってみました。 コードは以下の通りです #target "illustrator" var result = main(); if (result) alert(result); function main(){ if (parseInt(app.version,10)<15) return "IllustratorCS5以降対応のスクリプトです"; …
はじめに 会場について モニターを使った発表 CEPとSUI(こうちゃん) SUIで生成するフローティングウィンドウ CEPで生成するフローティングウィンドウ コールバック スクリプト作成のためのスクリプト支援(kmutoさん) Grepクエリマネージャ(自分) 補足 …
二重配列とは sortメソッド 論理演算子|| 本題 二重配列をソートする関数 ちょっと躓いたので備忘録も兼ねて残しておきます。ちょっとだけツイートした二重配列のソートについてです。 二重配列と配列に対するsortメソッドについては既に知っているよ、とい…
あるアイテムがドキュメントの何ページ目にあるのかというのは、スクリプトを介して意外と簡単に取得できます。ただ、それが意図した結果かどうかというのは別の話です。スクリプトではよくある話ですね。 というわけで、まずは下図をご覧ください。 見開き…
ここんとこレジュメのスクリプトばっかりで遊んでないので、ちょっぴりハマったことをメモ。 ドキュメント中のテキストフレーム内の文字を選択した状態で、そのテキストフレームと同じページに新たにオブジェクトを作りたかった。 var myDoc = app.activeDoc…
元の設問はこちら。 機能1:動作するInDesignのバージョンを指定する 機能2:[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする、機能3:スクリプトで修正した個数をカウントして表示 機能4:開いているすべてのドキュメント…
元の設問はこちら。 機能1:動作するInDesignのバージョンを指定する 機能2:[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする、機能3:スクリプトで修正した個数をカウントして表示 機能4:開いているすべてのドキュメント…
改めて元の設問はこちら。 機能1、機能2・3は前回・前々回の記事を参照してください。 さて、機能4です。 4.開いているすべてのドキュメントで実行する var allDocs = app.documents; for (var x=0; x
解説らしい解説がないので、機能2と3は抱き合わせました。 さっそく以下からどうぞ。 2.[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする var myDoc = app.activeDocument; var myTxf = myDoc.textFrames; for (var i=0; i
先日のもくもく会#2に合わせて作ったレジュメですが、ボチボチ解答例を上げていきます。興味のある方はトライしてみてください。 というわけで、まずは機能1「動作するInDesignのバージョンを指定する」です。
dtpmkmk.connpass.com 本日、無事に「DTPerのスクリプトもくもく会 #2」が開催されました。 会場をお貸しくださったMD5500さん、そして参加してくださった皆様、ありがとうございました。 次回は9月開催の予定です。近づいた頃Twitterやブログで告知します…