DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

InDesign

実行しているドキュメントの判定とスクリプトの再実行

現在アクティブなドキュメントに対してスクリプトを実行したあと、そのスクリプトを再度実行する際、アクティブなドキュメントが前回と同じかそうでないかを判定するにはどうしたらいいか? という話を同僚から相談されました。 実は以前こんな記事を書いて…

InDesign ExtendScriptで「テキストを選択しているかどうか」の判定方法

InDesignのExtendScriptでは、テキストに関するサブクラスがたくさんあります。これらを使って「選択しているオブジェクトはなにか?」というのをよく実装するわけですが、毎度毎度「TextStyleRangeと、あとなんだっけ……」みたいに全部をパッと思い出せない…

InDesignで作業中に別のアプリを起動するショートカットが欲しい

InDesignのいつのバージョンからか、Macのグローバル・ショートカットキーが機能しなくなったように思います。 僕はInDesignでテキスト入力中でもGoogle日本語入力環境設定を表示したいなーと思ったりします。思いますよね。思うと思うんですよ。絶対。 なの…

【InDesign CC2015〜2021】表組のヘッダーが消えるバグ

新しいAdobe Community Forumがマジで使いにくいのですが、こんなスレッドを見つけたので速報的に共有です。 community.adobe.com 手元で試した限り、CC2015以降、2021までの全バージョンで再現します。 (2020年10月時点) 要するに、ヘッダーをグラフィッ…

技術書典7にて初の同人誌を委託販売します

【追記 9/24 9:00】ここで紹介している同人誌はBOOTHにて頒布中です! uske-s.booth.pm 以前のエントリでも書きましたが、初の同人誌を無事入稿することができたので、改めて本の紹介をさせてもらいます。 みんなサークルチェックしてくれよな! techbookfes…

「マスターページを適用するスクリプト」を作るスクリプト

var actDoc = app.documents[0]; var mstSpr = actDoc.masterSpreads; for (var i=0; i

マスターページの名前を一括変更する

var doc = app.documents[0]; var msp = doc.masterSpreads; var reg = /ほげ/; //検索ワード(/正規表現/か "文字列" とする) var rep = "ぴよ"; //置換ワード("文字列" のみ) for (var i=0; i

ページパネルから選択したページだけをひとつづきのPDFとして書き出したい

背景 機能と使い方 コード ページパネルから選択したページを取得する仕組み 似てるスクリプトは既にあった 背景 Twitterで見かけて「スクリプトならまぁできますね」と適当なことをつぶやいたのですが、それでできなかったらカッコがつかないと思い、試しに…

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

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

InDesignのクイック適用をスクリプトランチャーとして使う

InDesignのクイック適用(⌘+Enter、もしくは一部のパネルにある雷マーク)には、実は検索するメニューをフィルターすることができるようになっています。 これを、画像のように「スクリプトを含む」をオンにし(デフォルトではオフ)、他をオフにすると、ク…

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

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

合成フォントが重複してロックがかかる

んなアホな…。というデータを引き当てたので残しておきます。すべての合成フォントが同じ名前で重複して存在しています。左上に鍵のマークが見えますが、合成フォントの構成を触ることができません。 データはCS6で、これはどうやらInDesignCS6の不具合らし…

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

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

InDesignで数字3桁区切りをする正規表現(メモ書き)

調べれば誰か書いていそうな気がしたけどメモ書き。 検索:([0-9])(?=([0-9]{3})+[^0-9]) 置換:$1, 肯定先読み(?=hoge)はhogeの部分が可変長でも対応できるので、([0-9]{3})+[^0-9]が最長マッチを取りながら頭から検索していく感じ。 2023/03/23 追記 こち…

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

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

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

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

InDesignの検索置換プリセットを見えなくする

InDesignの検索置換プリセット、僕は使ったことがないのですがどれくらい有用なんですかね。僕自身はかなりの数のクエリセットを利用していて、その整理にスクリプトを使っているくらいです。なので使わないクエリセットが表示されるのは非常に鬱陶しいので…

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

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

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

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

InDesignの自動スタイルに関するTips

はじめに 12月に入って途端に冬らしくなってきましたね。クリスマス前の風物詩であるAdvent Calendarですが、今年はDTP Advent Calendar 2018なるものが登場し、思わず参加させてもらいました。そしてこの記事はDTP Advent Calendar 2018の9日目の記事です。…

もくもく会#9 開催報告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ES3で使うためのArray.filter

【追記 19/4/22 15:08】 それでもやっぱりまだうまく行ってなかったようなので、他所からお借りしました。 【追記 5/30 13:06】 コードに不具合があったため修正しました。あるふぁ(仮)さん、いつもありがとうございます(記事末尾にも追記あり)。 【追記…

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

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