DTPab

DTPにまつわるあれこれ

ExtendScript

DTPerのスクリプトもくもく会#21を開催しました

2月20日、DTPerのスクリプトもくもく会#21(オンライン)を開催しました。 参加してくださった皆さま、ありがとうございました。 dtpmkmk.connpass.com 完全オンライン開催 当日の様子 自分の進捗 結果 開発にはVSCodeを使った ハマったところ もくもく会で…

InDesignサンプルスクリプト BreakTextThread を手直しする

はじめに スクリプト処理の基本的な流れ コードの部分解説 フレームグリッド設定を記憶する 設定を適用する 最後に ダウンロードとコード全文 はじめに 仕事が忙しくてちょっと空いてしまいましたが、InDesign日本語版20周年イベントの補足というか付録です…

InDesign日本語版20周年記念イベント開催!

本日まもなく、InDesign日本語版20周年記念イベントが開催されます! 開催告知ページにもURLが掲載されていますが、こちらにもYouTube LiveのURLを載せておきますね。 youtu.be 僕自身は17:30頃から登壇予定ですが、スライドをこちらにアップしました。 spea…

フレームグリッドか単なるテキストフレームか知りたい

探しても見つからないと思った。 よくお世話になっている、gregor氏がメンテされているExtendScript API*1にはこのプロパティが掲載されていなかったというオチ。 www.indesignjs.de このStoryPreferenceに目的のプロパティがない。 ちなみに僕が欲しかった…

aalt/nalt字形を基底グリフに置換するスクリプト

はじめに このスクリプトは何をするもの? ダウンロードするには スクリプトの使い方 jsx版について main関数 reWrite関数 基底グリフに置換する仕組み ルビが設定されていない場合 ルビが設定されていた場合 最後に はじめに ものかのさんの「なると巻き」…

Adobe CC Apps拡張機能まわりのApple silicon/ARM対応状況

Adobe Tech Blogに下記のような記事がアップされています。詳しくは元の記事を参照。 medium.com CC Apps対応の概略 CEP panel ExtendScript & SUI Generator(Photoshopのみ) UXP 今後(雑な意訳) 最後に CC Apps対応の概略 Gistにcsvがアップされていた…

DTPerのスクリプトもくもく会#20 オンライン を開催しました

2020年11月22日、DTPerのスクリプトもくもく会#20を開催しました! もう20回目の開催になるのですね〜。感慨深い。 今回も初めましての方にご参加いただけて嬉しい限りです。新しい方に参加してもらえないとこういった勉強会は緩やかに衰退していくような気…

オブジェクトの色をランダムに塗る ― 応用編

前回、選択したオブジェクトをランダムに塗り分けるスクリプトを作りました。 uske-s.hatenablog.com これだと何の制限もなくただランダムに塗り分けるだけなので、実用性に欠けます。なので今回は、このスクリプトにいろいろ機能を追加していきます。 もし…

オブジェクトの色をランダムに塗るIllustratorのスクリプトを作ってみよう

久しぶりにIllustratorのスクリプト記事です。今回は標題のスクリプトを作る過程から解説しようと思います。 はじめに どんなスクリプトを作るの? 開発環境 この記事で扱わないこと 開発しよう フローチャート それぞれを小さな関数にまとめよう ドキュメン…

さよならESTK―ありがとうCotEditor

Ten A先生のブログで、CotEditorで作業中のスクリプトファイルをそのままAdobeアプリで実行できるAppleScriptが紹介されています。 ten-artai.com 見ていただければ分かりますが、例えばInDesign用について言えば「2021専用」になっています。 僕は仕事の都…

InDesign 2021 ExtendScript API

InDesignフォーラムで情報がアップされていたので共有です。 community.adobe.com ただAdobe Forum、いつまで見れるか信用性が失墜している(当社比)ので記事にもURLを転載しておきます。 InDesign(最新版)のExtendScript API*1 InDesign ExtendScript AP…

{} の入れ子問題

ろくやん(id:rokuyaN)さんの下記の記事でコメント付けたけどタグ文字をエスケープできずうまくコードが貼り付けられなかった。 rokuyan.hatenablog.com のでここに晒しておきます(元のスクリプトは上記ページ参照)。 var layObj = app.activeDocument.la…

+DESIGNING vol.50 のコラム「ラクラボ。」を執筆しました

今月末発売予定の +DESIGNING vol.50掲載のコラム「ラクラボ。」を執筆しました。 *掲載許可をいただいています Adobe謹製のExtendScript開発・デバッグツール「ESTK」からVSCode(ESDebugger)への乗り換えについて書きました*1。 デザイン系のムックだと…

ISBNや雑誌コードのチェックディジットを確認するスクリプト

タイトル通り、なスクリプトを作りました。ハイフン込みで13桁の数字(の文字列)を選択した状態でスクリプトを実行してください。InDesign、Illustrator、どちらでも動作します。 InDesignでの動作(実際はIllustratorでも動く) チェックディジットの細か…

InDesignのPDF書き出しプリセットをフォルダ単位でまとめて読み込むスクリプト

Acrobat Pro DC様のご機嫌が悪くなってしまって完全クリーンインストール? したらPDF書き出しプリセットが吹っ飛んだので、フォルダ単位でまとめてインポートするスクリプト書いた。 InDesignから実行するとフォルダを選べとダイアログが出るので、joboptio…

パネルで選択中のスクリプトを実行するInDesignスクリプト

ワンライナーなのでGistにもアップせずここに供養しておく。 app.menuActions.itemByName("スクリプトを実行").invoke(); スクリプトパネルでスクリプトを選択した状態で実行してください。 ショートカットに登録しておくと、スクリプトパネルで選択するスク…

ExtendScriptのErrorオブジェクトのプロパティ

プロパティ ExtendScriptでの仕様と気づいたこと インスタンス化 参照 書いてるスクリプトで改めてErrorオブジェクトについて調べたので自分用のメモです。というのもどうやらJavaScriptの一般的なErrorオブジェクトと違い、プロパティをAdobe ExtendScript…

【告知】もくもく会#18 やります

DTPerのスクリプトもくもく会、参加者募集中です! dtpmkmk.connpass.com DTPerのスクリプトもくもく会#18を今月7/18(土)14:00〜開催予定です。このままだと超少人数開催になるので参加予定の皆さん、楽しくやりましょう! 予定空いているどうしよっかなー…

SUIに画像を埋め込む方法

はじめに 取り扱わないこと 画像ファイルを文字列化する SDBを使う BINARY読み込み、コードポイントとして落とし込む 文字列化する 画像データとして復号 BINARY読み込み、toSource()メソッドで文字列化 文字列化する 画像データとして復号 おわりに 補足:S…

StartupScriptでアプリ起動時に一度だけ呼ぶイベントある?

答え:1回呼ぶだけならイベントに登録するなかれ そもそもStartupScriptってアプリ起動時に実行されるスクリプト。だからStartupScriptsフォルダにスクリプトを放り込んでおけば起動時に1回呼ばれて終了となりますよね。 どうしてこんなことに気づかずイベン…

ScriptUIの詳細な資料

以前もくもく会で紹介したような気がするのですが(してないか?)、USスクリプティングフォーラムでも常連のPeter KahrelさんがScriptUIに関する詳細な資料を無償で提供されています。Adobeのどんな公式ドキュメントよりも詳しく、実情に沿った内容です。 S…

File.openDialog で複数のファイル種別を指定する

はじめに File.openDialog()メソッド 第2引数の書き方 Windowsの場合 macOSの場合 どちらのOSにも対応した書き方は? はじめに フォーラムで標題のようなスクリプトをどう書くの? って質問を見つけて回答した*1のでブログにも残しておきます。 File.openDia…

IllustratorのUIスケール次第でSUIのリスト表示がおかしくなる

Illustrator 2019から搭載されたUIスケールという設定で、表示されるパネルなどの大きさを調整できるようになりました。 環境設定>ユーザーインターフェース ところが、これを一番左(小)以外にしてしまうと、Script UI(SUI)のリスト表示が以下のように…

ExtendScript用のモジュールを作っています

タイトルの通りです。 github.com 別のリポジトリにも置いていたのですが、モジュールはモジュールだけでまとめて管理したいなと。モジュールの追加や修正を逐一ブログで報告しないと思いますが、今回はひとまず過去公開していたモジュール(以下の記事参照…

箇条書き記号を定義した設定に従って入れ替えるInDesignスクリプト

はじめに SwitchBullets.jsx 設定ファイル コード 技術的な話 エラー処理 型変換 Bullet.characterValueは数値型 おわりに はじめに 前回の記事に続き、また新しいInDesign用のスクリプトです。 段落の箇条書き機能を割と頻繁に使うのですが、特に源ノ角ゴシ…

段落スタイルを基準に選択範囲を移動するInDesignスクリプト

InDesignで作業中に、見出しの先頭にマーカーを挿入したり、見出しの状態/状況を確認したりっていう作業を僕はけっこうやります。そのたびに検索条件に段落スタイルを登録して…とかってやるのも大変なんで単純にページを送って確認するわけです。なのでこん…

InDesign 15.0.2 コミュニティスクリプトを紐解く 5

仕事が全然収まっていない中で、働き方改革法案の残業時間内でどうにか回るようにチームメンバーたちにがんばってもらっているこの頃です。こんばんは。 今回もこれらの記事の続きになります。 InDesign 2020(15.0.2)で追加されたコミュニティスクリプト -…

InDesign 15.0.2 コミュニティスクリプトを紐解く 4

仕事が「霧の中を航行する船が突然海賊に襲われた」みたいな状態になっていて毎日やばいです。こんばんは。 仕事がそんななので遅くなってしまいましたが、今回は下記の記事の続きになります。 InDesign 2020(15.0.2)で追加されたコミュニティスクリプト -…

配列に要素が含まれるかどうかを調べるArray.some()メソッドをポリフィルする

あらまし haragurai-is-bad氏が、記事中でArray.indexOf()メソッドをポリフィルしてExtendScriptに実装していらした。 haraguai-is-bad.hatenablog.com 実はポリフィルしてた 記事のコメントにも書いたとおり、僕はArray.some()メソッドをポリフィルしていま…

選択したオブジェクトがアンカー付きオブジェクトかどうかを判定する

どういう実装がいいのかいまいち決めきれないものの一つにこれがある。 いま使っているのは下記2種類。 var sel = app.activeDocument.selection[0]; // 1: アンカー付きオブジェクト専用プロパティにアクセスしてエラーを起こす try { sel.anchoredObjectSe…