DTPab

DTPにまつわるあれこれ

extendScript

ScriptUIでグループをまたいだラジオボタンの処理

元ネタ コード 開発モノローグ スキル発動 for文で処理しよ for文でonClickメソッドを定義 チャレンジ その1 原因究明 チャレンジ その2 原因究明 チャレンジ その3 真面目に解説 元ネタ id:haraguai_is_bad さんがブログで面白いスクリプトを公開されていま…

フォルダの中のinddファイルすべてを対象にスクリプトを実行する

コード 解説 積み残し というスクリプトを書いてみました。 最低限のエラー処理などは組み込んでいますが、しっかり検証していませんのでご利用は自己責任でお願いします。 できればinddファイルのバックアップなどは取っておいていただいたほうがいいかもし…

よく使う処理・使うたび調べる処理はプロトタイプ拡張するといい

よく使う処理、いやむしろたまにしか使わなくて詳細を調べながら使う処理、ありますよね。 あと使うためにわざわざ値を変数に入れなくちゃいけない処理とか。 そういうものをプロトタイプ拡張して使いやすくできるのもJavaScriptのいいところです。 以下はそ…

東京のDTP勉強会特別編#6のお手伝いをしてきた

はじめに 会に参加してみて 全体を通して CCアプリ自動化について(Ten氏) Illustratorスクリプトハンズオン(したたか企画氏) InDesignスクリプトハンズオン(Ten氏) さいごに 追記 はじめに 東京のDTP勉強会特別編#6、スクリプトハンズオン勉強会にサポ…

オブジェクトにまとめてキャプション用のテキストフレームを追加したい

改訂履歴 はじめに 使い方と動作画面 動作確認バージョン 既知の不具合 コード 余談 改訂履歴 2019.06.06 v0.2.1 ドキュメントの1ページ目にしかテキストフレームが生成されない不具合を修正しました。 はじめに けっこう前になりますが、バンフーセミナーで…

ExtendScript Debugger for VSCode ver. 1.1.0 がリリース

v1.1.0がリリース 新しく追加された機能など シンタックスチェック ステータスバーの文字色が変更可能に #target、#targetengineに対応 extensionModeの実装 で、launch.jsonどうする? 今後のESDebugger v1.1.0がリリース 先日、ExtendScript Debugger for …

正規表現スタイルを全部書き出す

増えすぎた正規表現スタイルをきれいにしたい…ということになり、秘伝のソースのような、過去の担当者たちが継ぎ足し継ぎ足し作り上げてきた正規表現スタイルを整理することになりました。 ただInDesignの段落スタイル編集パネル上では読み解くにも限界があ…

ふたたびのArray.filter

過去自分で書いたArray.filterですが、うまく動かないことがあると言われまして、ずっと喉の奥に刺さったトゲのように気になっていました。 uske-s.hatenablog.com Twitterでごろりぶさんともそんな話をしたのです。 きちんと比較するなら厳密比較演算子使う…

1if-1for(4):複数のオブジェクトをあるオブジェクトに置き換えたい

久しぶりに1-if, 1-forなスクリプトっす。いや実際にはifがないので1forのみ。 使い方は、 置き換えられるオブジェクトをまとめて選択 置き換えたいオブジェクトを最後にポチッと選択 そんだけ。 Undo(⌘+Z)1回でスクリプト実行前に戻れるオシャレ仕様です…

ExtendScript Debugger for VSCodeがリリースされたので簡単にまとめてみた

v1.1.0がリリース(2019年5月26日追記) おさらい ExtendScript Debugger Plugin 導入前に Windows版はベータ版 プレリリースプログラム参加者へ サポートされた機能 サポートされない機能 プラグインの使い方 launch.jsonの用意 launch.jsonの設定値 debugg…

AppleScriptのwhoseメソッドを真似てみた

標題の通り、Array.prototype.whoseメソッドなど実装してみた。 コード サンプル サンプルコードとしては以下のようにします。 var paraStyles = app.activeDocument.allPagraphStyles; var tgtParaStyle = paraStyles.whose({name: "hoge"}); この例では、…

InDesign CC2017以降のSUIのデバッグのしにくさが加速

InDesign CC2017以降、ESTKから実行したスクリプトでScriptUIの仕様が変わっているようです。 typeがpaletteのとき、SUIダイアログがwindowのようにアプリケーションの裏側に回り込んでしまうようになりました。 スクリプトを保存し、スクリプトパネルから動…

types-for-adobeによるスクリプト開発:行と段落の選択を支援するスクリプト

スクリプト概要と開発の経緯 Typescriptでのスクリプト開発 スクリプトの動作 スクリプト概要と開発の経緯 DTPTransitさんで少し前から配布していただいているスクリプトがあります。 www.dtp-transit.jp そのコードはこの記事に載せてあります。 uske-s.hat…

InDesign用サンプルスクリプトのリファクタリング(1)

はじめに リファクタリングしよう 実際のコード サンプルコードの解読 main関数 myDisplayDialog関数 myAlignObjects関数 myAlignObject関数 オーバービュー まとめ はじめに InDesignやIllustratorには、最初からサンプルスクリプトがプリインストールされ…

合成フォントの設定を書き出す

あけましておめでとうございます。 今年は週1回の更新を目標にブログを更新していければなーと思ってますが、果たしてどうなるやら。。。 それはさておき、今年最初の記事は合成フォントの設定をテキストファイルとして書き出すスクリプトです。例によって…

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

はじめに 師走になって日に日に寒くなってきたような気がしますが、昨日12/1(土)、DTPerのスクリプトもくもく会#10を開催しました。今回は特別にアナウンスしたり宣伝したりしたわけではなかったのですが、なんと14人の方にご参加いただきました(当もくも…

ESTKが動かない…?

昨日から、どうやらMac版のExtendScript Toolkitで不具合が生じているようです。 動作アプリケーションを指定しても、ESTKで単体のスクリプトとして実行してもこの警告が出ます。 古籏さんの検証では、どうやら日付に問題があるとのこと。 原因&解決方法が…

もくもく会#9 開催報告

先月22日、DTPerのスクリプトもくもく会#9を開催しました。仕事がべらぼうに忙しく、なかなかブログを更新できずにおりました。というわけで開催報告です。 今回はまたコワーキングスペースによる有料開催ということで、最初から6名と少なめの募集にしまし…

表組の列幅をまとめて変更したい

先日、同僚から「表組の列幅をポチポチ手動で決まったサイズに変えていかなきゃいけないんだけど、表組がぶつ切りになっていて辛い。スクリプトでなんとかできないの?」と相談されました。 そのときは適当に5分くらいで書いたスクリプトを渡して事なきを得…

InDesignの合成フォント関係スクリプト3件

Twitterで意外に反響があってびっくりしました。InDesignの合成フォントまわり、本当に面倒なんですよね。やっぱりみんな苦労するところは同じなのか…w さて、合成フォント関係のスクリプトを3つ紹介します。 すべての合成フォントに特例文字セットをまとめ…

ScriptUIを少しだけ簡単に利用するモジュール

随分前のもくもく会で、ScriptUIを楽に生成するモジュールを公開しました。 実はそのモジュールを知っている方が前回のもくもく会にいらしてくださり、使い方について改めて説明しました。 説明していて思ったのですが、コードが、その、なんというか、気持…

1if-1for(3):特定の文字スタイルの次の文字

職場で「ある文字スタイルが当たっている文字の、次の文字をスクリプトで処理したいが可能か?」と聞かれたので、試しに書いてみました。 そしたら結果的に1if-1forで収まったのでここに書いておきます。 この画像は、スクリプトで色が青くなる文字スタイル…

ボタンを横並びにしたカスタムダイアログ

ScriptUIでダイアログを作るのが面倒くさいと思いません? かといってconfirmメソッドの「はい・いいえ」とか「Yes・No」って内容じゃないんだよな…というときありますよね? そういうときのためにちょっとしたカスタムボタンのダイアログです。 コードの最…

1if-1for(2):フレームを線幅分小さくする

前回の記事で合成フォントの削除について書くとか書きましたが、諸事情により、選択したオブジェクトを線幅分小さくするスクリプトになりました。楽しみにされていた方(いるのか?)、申し訳ありません。 なぜかって? 急に欲しくなったからです!! さて、…

IDJS教室のテキストが販売されました

すでにお〜まちさんのTwitterやブログでご存知のかたもいらっしゃると思いますが、IDJS教室で使われたテキストが加筆修正されてBOOTHにて販売されました。 cs5.xyz この機会にぜひお手にとってみてください。 初歩の初歩から、こんなことできる?という細か…

1if-1for:書き捨ての小さなスクリプトたち

最近自分が手がけるスクリプトが、1000行を超える中〜大規模なスクリプトか、こまごまと5分くらいで書いて捨てる30行以内くらいのごく小規模のスクリプトのどちらかになりつつあります。というのも、同僚たちから依頼されたスクリプトに細やかに対応する時間…

DTPerのスクリプトもくもく会#8開催報告

いただいた質問など 縦組みで奇数ページの最終行の見出しを判別したい ページの左右 テキストフレームの最終行 まとめ SUIのIconButtonがCCのいくつかから表示がおかしい InDesignの検索置換パネルを利用した検索のしかた SUI生成関数 次回告知 先日、DTPer…

withPropertiesとJSON

はじめに withPropertiesに渡す引数の書き方 オブジェクトリテラルとJSON まとめ おまけ はじめに 先日終了したInDesign JavaScript教室(以下、IDJS教室)の参加者の方と、オブジェクトモデルビューアにある「withProperties」という引数の渡し方がわかりに…

スクリプトを開発・運用する際に気をつけていること

はじめに 環境的な前提 OSによらないスクリプト バージョンに限定されないスクリプト ユーザーフレンドリー スクリプト開発・運用の際に気をつけていること 誰が開発した責任を負うのか明確にする 最小限の労力で最大の効果を目指す 動作条件を細かく想定す…

InDesign JavaScript教室、いよいよ明日が最終日です

プログラムの勉強の難しいところ プログラム的な考え方 モチベーションの維持 変数という概念とオブジェクトモデル 次で最後です もくもく会の宣伝 かねてよりお伝えしていた通り、お〜まち(大間知聡)さんが主催されている標題の教室にスタッフとして参加…