DTPab

DTPにまつわるあれこれ

extendScript

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教室、いよいよ明日が最終日です

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

ESTKのインターフェイスを今風にアレンジ

ふと思い立って、ESTKのインターフェイスを今風にカスタマイズしてみました。 ちょっとBracketsっぽくなりました? まぁ基本的にBrackets使ってるのでESTKは割とどうでもいいんですが(ひどい 一応、こんなふうな(見た目だけ)モダンな感じにしたい方は以下…

ES3で使うためのArray.filter

【追記 5/30 13:06】 コードに不具合があったため修正しました。あるふぁ(仮)さん、いつもありがとうございます(記事末尾にも追記あり)。 【追記 5/30 15:30】 コードに不具合があったため修正しました。またまたあるふぁ(仮)さん、そして(-z)さん、あ…

ExtendScriptの単位付き計算

【追記 5/28 15:00】 重大な不具合をあるふぁ(仮)さんが見つけてくださったのと、最初に書いたスクリプト(単位付き計算を行う関数)が加算以外に対応していなかったことに気づいたのでここに追記して訂正いたします。 まずあるふぁ(仮)さんからのありが…

ESTKのtargetengineの挙動

ESTKのプリプロセッサディレクティブ、#targetengineについて少し調べたのでメモ。当然すべてInDesignでの検証です。 動的にエンジンを変更できるか 以下のコードをテスト。 #targetengine hoge alert($.engineName); var a = "Hello"; #targetengine fuga a…

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

謝辞 雑感 もくもく成果 想定した処理フロー 実際の処理フロー 変数の定義 同名メニューアクションの絞込み getAreaIndex関数 getMenuAction関数 カラーラベル名の定義 メニューアクションの特定とリスト化 ScriptUIの生成 スクリプト処理 スクリプトコード…

JavaScriptでブラックジャックのコード

先日、JavaScriptでブラックジャックを作る記事を書きました。 uske-s.hatenablog.com もうすぐもくもく会#7ということで、コードを掲載しておきます。 //カードデッキ var deck = deck || [ {value: 1, name: "◆A"}, {value: 2, name: "◆2"}, {value: 3, na…

Illustratorのスクリプト勉強中④

前回までのあらすじ 前回のコード このスクリプトの最終型 今日の目標 前回の補足 値を入力させてそれを受け取る 文字列型から数値型への型変換 水平方向に隙間なく並べる 座標値からソートする 左から順に隙間なく並べる 今日のコード ちょっと間が空いてし…

Illustratorのスクリプト勉強中③

前回までのあらすじ 紆余曲折を経て、選択しているオブジェクトをなんとか整列させるところまでできました。オブジェクトの移動だけならObject.positionプロパティに配列を渡すだけでいいんですね。 また、geometricBounds、controlBounds、visibleBoundsの…

Illustratorのスクリプト勉強中②

前回までのあらすじ 前回のコード 今日の目標 座標を取得する 3つのBounds オブジェクトを整列しよう で、結局どうやって移動するの 0番目のオブジェクトにあわせて整列する 前回までのあらすじ ちゃんと続きましたw 選択しているオブジェクトがどんな順番で…

Illustratorのスクリプト勉強中①

はじめに どんなスクリプトを作るか オブジェクトを捕まえる どういう順番で並んでいるのか 色成分って…? 色成分を配列に取得する関数 選択したオブジェクトの順番がわかった はじめに 職場でスクリプトの制作依頼をもらわない限り、僕は基本的にIllustrato…

JavaScriptでFizz Buzz

お遊びついでということで、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…

JavaScriptでブラックジャック

先日見つけたQiitaの記事が面白そうだったので、僕もExtendScript(ES3ベースのAdobe拡張JavaScript)で遊んでみました。 もっといろいろ機能を持たせられそうだし、もっと効率的なコードにできそうなんですけど、ひとまずできたものはできたということで。 …

実行する回数によって処理を変えたい

同僚から、初めて実行した時と2回目に実行した時とで、スクリプトの動作を変えたいがどうすればいいか?という質問をもらいました。 せっかくなので「実行する回数によって処理を変える方法」について(もちろんInDesignのスクリプトです)説明したいと思い…

「InDesign JavaScript教室」第1期の申込受付が始まりました

cs5.xyz お〜まちさん(CS5)が以前の東京DTP勉強会で話していらっしゃった、希望者がいればInDesignを使ったJavaScript(ExtendScript)の勉強会を開催しますというお話、実現することになりました。 詳細は上記リンクより確認してください。 で、なんで僕…

InDesignの正規表現検索チートシート

【訂正 2018.9.4】一部表記を訂正しました(赤字部分)。 なんか前回も検索についての記事だったんですけど、今回もたまたま検索に関する記事です。やっぱりよく使うInDesignの正規表現検索。 で、InDesignの正規表現検索は標準機能ながら強力で使いやすいの…