DTPab

DTPにまつわるあれこれ

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

背景

Twitterで見かけて「スクリプトならまぁできますね」と適当なことをつぶやいたのですが、それでできなかったらカッコがつかないと思い、試しに作ってみたのがこのスクリプトです。

機能と使い方

機能としてはタイトルの通りで、ページパネルから書き出したいページを選んで、スクリプトを実行します。
するとPDF書き出しダイアログの「範囲」の設定に当該ページが入力された状態で、PDF書き出しダイアログが開くというものです。
そこからプリセットを選ぶなり設定をカスタマイズするなりしてもらえれば、通常通りPDFが書き出せます*1

コード

GitHubに掲載していますが100行に満たないので全文掲載。

ページパネルから選択したページを取得する仕組み

スクリプトからパネルの情報を読み取ることはできないので、ページパネルで選択されたページに対してリアクションが可能なものを実行し、その情報を読み取って「選択しているページ」を判断しました。
具体的には「ページ属性>カラーラベル」を利用しています。
InDesignのメニューであればスクリプトから実行できるので、

  1. ページ上のすべてのカラーラベルを削除(このときの情報はプールしておく)
  2. カラーラベルを適用(選択中のページにラベルが適用される)
  3. Pageオブジェクトからラベルの情報を読み取り
  4. 最後にカラーラベル設定をもとに戻す

という流れで処理しました。

似てるスクリプトは既にあった

2/3ほど開発してから、USフォーラムでとても似たスクリプトを見つけたので、こちらも紹介しておきます。

Export selected pages to pdf

詳しいことはスレッドを読んでいただくとして、僕が作ったものが無駄になるようなことはなさそうで安心しましたw

*1:このとき選ばれるプリセットは、前回使った書き出しプリセットになります