背景
Twitterで見かけて「スクリプトならまぁできますね」と適当なことをつぶやいたのですが、それでできなかったらカッコがつかないと思い、試しに作ってみたのがこのスクリプトです。
スクリプトならまぁできますね…w https://t.co/16VysjGMAj
— Yusuke S. 💉 💉 💉 (@Uske_S) 2019年8月19日
機能と使い方
機能としてはタイトルの通りで、ページパネルから書き出したいページを選んで、スクリプトを実行します。
するとPDF書き出しダイアログの「範囲」の設定に当該ページが入力された状態で、PDF書き出しダイアログが開くというものです。
そこからプリセットを選ぶなり設定をカスタマイズするなりしてもらえれば、通常通りPDFが書き出せます*1。
コード
GitHubに掲載しています。
ページパネルから選択したページを取得する仕組み
スクリプトからパネルの情報を読み取ることはできないので、ページパネルで選択されたページに対してリアクションが可能なものを実行し、その情報を読み取って「選択しているページ」を判断しました。
具体的には「ページ属性>カラーラベル」を利用しています。
InDesignのメニューであればスクリプトから実行できるので、
- ページ上のすべてのカラーラベルを削除(このときの情報はプールしておく)
- カラーラベルを適用(選択中のページにラベルが適用される)
- Pageオブジェクトからラベルの情報を読み取り
- 最後にカラーラベル設定をもとに戻す
という流れで処理しました。
似てるスクリプトは既にあった
2/3ほど開発してから、USフォーラムでとても似たスクリプトを見つけたので、こちらも紹介しておきます。
詳しいことはスレッドを読んでいただくとして、僕が作ったものが無駄になるようなことはなさそうで安心しましたw
*1:このとき選ばれるプリセットは、前回使った書き出しプリセットになります