このページの本文へ

InDesign+JavaScriptで電子書籍制作を自動化 (3/6)

2010年09月24日 11時00分更新

文●古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

選択されたテキストフレームの文字を表示する

 ESTKの基本的な操作方法が分かったところで、実際にInDesignからJavaScriptで青空文庫形式に出力してみましょう。今回はASCII.jpの連載「今すぐ始める電子書籍制作入門」の第3回で使用したInDesignのデータを利用します。

・今すぐ始める電子書籍制作入門 第3回
http://ascii.jp/elem/000/000/548/548935/

サンプルには「今すぐ始める電子書籍制作入門」のInDesignデータを利用する

 最初に、InDesign上で選択されたテキストフレーム内の文字を抜き出し、単純にアラートに表示してみましょう。InDesignで選択されたフレームの情報はselection配列に格納されます。selectionはapp.selectionとapp.activeDocument.selectionの両方にあり、どちらを参照しても同じ結果になりますが、ここではアクティブドキュメントで選択されたという意味を示したいのでapp.activeDocument.selectionを参照します。

 selectionは配列ですので、最初に選択されたフレームの情報はselection[0]で参照できます。テキストフレームの場合、表示されている文字はcontentsプロパティに入っています。

 サンプル1は選択されたテキストフレーム内の文字をアラートダイアログに表示するスクリプトです。

●サンプル1


// 選択されたテキストフレーム内の文字を表示
var sel = app.activeDocument.selection;
alert(sel[0].contents);


テキストフレームを選択しサンプル1を実行すると表示されている文字の内容がアラートダイアログに表示される

 テキストフレーム内の文字は必ずしも1ページに収まっているとは限りません。2ページ目に続いているかもしれませんし、小説などであればかなりのページ数に渡って続くはずです。単純にテキストフレームのcontentsプロパティにアクセスした場合は表示されている部分だけが取得されます。テキストフレーム内のすべての文字を参照したい場合はparentStory.contentsとします。

 サンプル2は、選択されたテキストフレーム内のすべての文字をアラートダイアログに表示します。

●サンプル2


// 選択されたテキストフレームの全ての文字を表示
var sel = app.activeDocument.selection;
alert(sel[0].parentStory.contents);


テキストフレームを選択しサンプル1を実行すると、複数のページにまたがるテキストフレーム内の文字すべてがアラートダイアログに表示される

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています