カテゴリー:ExtendScript 一覧

Illustrator getDocumentInfoAsTextメソッド

もう平成も昔のECMA3で時が止まったままのIllustratorのExtendScriptですが実はひっそりと新しいメソッドが追加されていたりします。getDocumentInfoAsTextメソッドと呼ばれるものでドキュメント情報パネルの情報がテキストとして取得できる優れものです。通常取れないようなオブジェクトの情報も取得できたりしてとてもで役に立ちそうなもので公式の資料にも全く触れられていませんが私のようなものは知らなくてならないくらいのものです。ちなみに発見したのは私ではなくここのフォーラムで私も見ただけで第一発見者がsttk3(したたか企画氏)と細かいサンプルコードを書いたのはm1b

Read more

Electron アプリScriptDictionary

ExtendScript用のXML解読アプリケーション作りました。ExtendScriptではExtendScript Toolkitに用付属しているXMLにExtendScriptのオブジェクトモデルが書いてあります。 場所はMacなら /Library/Application Support/Adobe/Scripting Dictionaries CC WinならC:\Program Files (x86)\Common Files\Adobe\Scripting Dictionaries CC 尚PremiereだけC:\Users\username\AppData\Roaming\A

Read more

ChatGPTにExtendScriptを生成してもらう

この記事の内容はすぐに古くなる可能性があります。 流行りのあれですが試している方も多いとは思いますが個人的な体験を少しまとめてみました。 結論としてはもう色んな方がおっしゃているのですが 完璧には書いてはくれない。(動かない箇所が混ざりがち) 部分的には使えるコードを書いてくれるのでうまく使えばかなり役立ちそう。 開発者は出されたコードを解読できるだけの知識は必要。 といったところでしょうか。とりあえずIllustratorのレイヤーを作成するExtendScriptを書けますか聞いてみました。 とりあえず新しいレイヤーを5つ作成する簡単なScriptは問題無く書いてくれました。ExtendS

Read more

Illustrator Script Shuffler, Stepping

簡単なIllustrator scriptを二つ作りました。 パスアイテムのカラーを選択したパスアイテム内で入れ替えるScriptです。 使い方 今回二つのScriptがありますがどちらもカラーを入れ替えたいパスアイテムを選択して使うだけです。複合パス、グループアイテム内のパスアイテムも入れ替え対象になります。 ただしアピアランスのカラーは対象になりません。その他あまりにも構造が複雑なデータパスのアイテムは入れ替えの対象にならない可能性もあります。 Shuffler 選択したパスアイテムのカラーをランダムにシャッフルします。選択したカラー内でシャッフルするので選択してないカラーが出てきたりしま

Read more

Adobe ExtendScriptにユニットテスト環境を構築する

遂にUXPがInDesignにも来ましたが今の開発の流れを見る限りIllustratorその他のアプリケーションにも本格的に実装される日はまだまだ長そうです。しかし規模が大きくなってくるとExtendScriptの開発もやはり効率化したくなるものです。特にCEPとくっ付いたExtendScriptのテストの実行は色々大変で各関数、オブジェクトに問題が出てくる度にコードを一部分だけ抜き取ってテストするのもだれます。ということで今回ExtendScriptにユニットテストを実装してみました。但しそんなに本格的なものを実装したわけでは無いのでご了承ください。私自身個人開発の域を超えない範囲の開発しか

Read more

CEPにおいてExtendScriptから返ってくる値を真剣に考えてみる。

*今回TypeScriptを使った記事になります。 何度も述べていますがExtensionの開発においてパネルとExtendScriptを繋ぐ部分というはエラーが起きやすい箇所であります。開発するExtensionの仕様が複雑になればパネルとExtendScriptの間で色んな値のやりとりが発生します。この時に厳格パラメータの管理を行なっていないと思わぬエラーが発生して延々とパネルとExtendScriptのデバッグをする羽目になります。 ExtendScript側からパネル側に返ってくる値は常にstring型 おさらいになりますがExtendScirpt側から返ってくる値は常にstring型

Read more

CEP上のExtendScriptをモダンな環境で開発する(Webpack + TypeScript + Babel)

みなさんご存知の通りExtendScriptはECMA3の古いシステムがベースとなっています。小規模なExtensionの開発をするのでしたらそのまま古い環境で書いても問題ないのですが問題はコードの規模が大きくなればなるほど問題が増えていく事です。CEP下のExtendScriptは従来のコンソールの値が表示されなくデバッグがやりづらいという問題もありましたがExtendScriptDebuggerver2の登場によってこれらの問題は解決されつつあります。しかしimport、export文が使えない事によるグローバル汚染。パネルとExtendScriptでやりとりを行う時の値の受け渡しで失敗し

Read more

ExtendScript Debugger ver2 触ってみた その3

attachモードの全貌が今までよくわからん感じでScriptをVsCode以外にもホストアプリケーション、もしくはCEPから実行してScriptの実行をプラグインが感知して$.writelnメソッドがコンソールを書き出す、ブレークポイントに反応するなど書いていたのですがどうやっても反応しないので不思議に思っていたところVsCodeのmarketplaceのページが更新、加筆されていてCEPに関する記述が一気に増えました。そこで具体的なデバッグ方法にも触れられてCEP上のデバッグ方法がわかるようになりました。そういうことでExtendScriptDebuggerを使用したCEPのデバッグの記事

Read more

ExtendScript Debugger ver2 触ってみた その2

前回の記事より続きになります。今回attachモードを解説してみますがドキュメントを見る限り色々できそうなのですが今回とりあえずわかる範囲で書いてみます。もしかしたらもっと賢いやり方があるかもしれませんのでその場合は後々更新します。 attachモードの基本 前回解説したようにlaunchモードはlaunch処理を開始したその瞬間にデバッグを開始してターゲットのコードが走って終わった後にlaunchモードも終了します。それに対してattachモードは常時アプリケーションと繋いでいる状態になります。attachモード実行後、その瞬間にコード自体は走りませんがEval in …アプリケ

Read more

ExtendScript Debugger ver2 触ってみた その1

ExtendScript Debugger ver2が遂にリリースされました。 ver1に対してlaunch.jsonを設定するのは同じですが中身の設定は大きく変わっています。 今回とりあえず前バージョンのように動かすことを前提に触ってみます。 launch.jsonは必須ではない 今回より前バージョンではlaunch.jsonファイルが必須でしたが今回よりなくても動かなくなりました。但しlaunchなのかattachなのか、そしてターゲットアプリケーションを実行の度に選択しないと行けないので単発のデバッグでない限り作成した方が良いでしょう。下の図のcreate a launch.jsonを選

Read more