HAKADORI Script開発

AppleScript で InDesign から目次・索引を作成

2017.03.06 月

AppleScript で InDesign から目次・索引を作成

こんにちは、デジタル事業本部の藤田です。

カタログを作成する際、DTP作業において目次や索引を作成することが多々あります。カタログの紙面検索において目次はもちろんのこと、索引はあるとたいへん便利なものです。しかし、DTP作業者にとってはなかなか骨の折れる作業なのです。

● InDesign の索引作成機能

実は InDesign には索引を作成する機能が備わっています(参考:索引の作成)。あらかじめ索引作成用に構成を検討しておけばとても役に立つ機能です。とはいえ、正直使い勝手のいいものとは言い難い仕様です…まずダイアログで単語ごとにいちいち設定をしなくてはならない/読みがなを入力しないといけない/どこに索引を設定したのかがわからない/設定すると文字組が変更されてレイアウトが変わることがある。などなど作業者にしてみればこの時点で心が折れてしまいそうな手間の数々です。ハイパーリンクでノンブルを追っかけてくれるという利点はあるものの、メリット・デメリットを比較すると決して使いやすいとは言い難い機能です。


index_CS3

index_CC2017

CS3(左)CC2017(右)の索引パレット。
バージョンは進化しても機能はあまり変わりません。

● InDesign の目次機能

また、InDesign には目次作成の機能も備わっています(参考:目次の作成)。こちらは目次の基準となる段落スタイルを作成して適用し、次に、目次で使用するスタイルおよび目次のフォーマットを指定する方法となります。見出しなどに段落スタイルを適用しておけばページ番号とともに書き出すことができるので索引よりスマートな方法といえます。何より既存の段落スタイルを設定しておけば目次リストが作成できるのがとても便利ですね。とはいえ、目次スタイルを作成しなくてはいけませんので、校了後にデータへ手を加える必要があったりすると使うには気が引ける機能です。


sakuin_CS3

sakuin_CC2017

CS3(左)CC2017(右)の目次スタイル設定画面。
こちらもバージョンが進化しても機能はあまり変わりません。

また、複数のドキュメントがある場合もその都度目次スタイルを設定しなくてはいけません。複数ドキュメントについてはブック機能という手段もありますが InDesign を熟知したスキルが伴っていないと使いこなすには難しいでしょう。

● スクリプトで抽出【文字/段落スタイル】

とある総合カタログの大型案件で索引を作成することになり、デフォルトの機能とは違うアプローチでスクリプトを作る必要が生じました。幸い抽出したいテキストに段落スタイルが適用されていたので、ページごとにテキストフレームを調べてテキストを抽出するスクリプトで無事に索引用リストを作成することができました。

テキストを調べる方法は検索機能を使用しています。

テキストフレームごとに段落スタイルが適用されたテキストをノンブルと一緒に抽出します。
文字/段落スタイルを設定するダイアログ。ドキュメントから取得しています。

実際はもっと複雑で下記の条件をそれぞれ含めた抽出方法でした。
・段落スタイルは適用されていないものの、段落スタイルと同じ書体と級数のテキスト
・特定の名前で始まる段落スタイル名のテキスト
・マスターページに書いてある特定の位置のテキスト
・特定の配置画像の近く(横1.5mm、縦0.25mm以内)のテキストフレームのテキスト

この方法論に汎用性を持たせたのがこちらのスクリプトです。

このスクリプトはタクトシステムのHPでお試し版を配布していますので、よろしかったらぜひダウンロードしてください。

● スクリプトで抽出【スウォッチ/下線】

テキストの抽出を文字/段落スタイルではなく、特定のスウォッチまたは下線が適用されたテキストを抽出するスクリプトも作成しました。

テキストに「script-1」というスウォッチが適用されていれば抽出します。

● タブ区切りテキストで書き出し

抽出したテキストは最終的にタブ区切りテキストとして書き出します。InDesign は内部的に Unicode を使用しているので、書き出しテキストのエンコーディングは UTF-16LE(リトルエンディアン)です。Excel で読み込ませるために BOM を付けてあります。

テキストをエンコーディングが判別できるエディタで開いたところ。

● 複数の項目をひもづけて抽出したいときは…

応用編として下記のような作業も行いました。例えば…
・「型番」と「価格」がセットになった索引用リストを作成する
・テキストを抽出したテキストにマーカーをひく
・テキストを抽出/マーカーをひいたドキュメントからPDF作成
などなど…

タクトシステムではこういった案件にも対応可能ですので、ぜひ目次・索引でお困りの方はお問い合わせください。

  • この記事を書いた人

Noriaki Fujita

藤田 徳朗(フジタノリアキ) デジタル事業本部 DXソリューショングループ所属 Scriptを書いたり、アクセス解析をしています。どうぞよろしくお願いします。

-HAKADORI, Script開発
-, ,