緊デジフィックス型EPUB3用XHTML生成スクリプト

 前回のエントリに引き続き、緊デジ用のスクリプトを公開します。そもそもこちらのスクリプトはスタジオ・ポットSDの日高さんの制作されたPHPスクリプトです(いきなり送られてきて割とびっくりしました(汗))。これはあらかじめPHPソース「mk-epub-fixed.php」を開いて出力する総ページ数を書き換え、同じく「source.xhtml」内の書籍タイトル名を書き換えた上でターミナル(Windowsの場合はコマンドプロンプト)からスクリプトを実行すると、xhtmlフォルダ内に連番でリネームされたxhtmlファイルが生成されるというものです。
 あとはimageフォルダ内にスキャン済の各ページの画像を入れ、OPFファイルや目次を整えれば緊デジフィックス型EPUB3の必要ファイルが一通り整います。
 なかなか便利そうなスクリプトと思いましたので、先方の許可をいただいて私のブログで公開させていただくことにしました。

Mac用GUI版

Mac用GUI版

 そのまま公開するのもあまりに芸がありませんので、ぺージ数だけ引数で指定できるようにしたものと、Mac用に簡易GUIを付けたものを別に作ってみました。GUIプログラムに関しては説明するまでもないと思いますので、以下、主にコマンドライン版の説明をします。

 なお、WindowsのコマンドプロンプトでPHPのプログラムを実行するには、あらかじめPHPのプログラムをインストールし、パスを通しておく必要があります。こちらこちらなどを参考に、PHPの実行環境を整えておいてください。ちなみに私の環境では、XAMPPをインストールした上で環境変数の末尾に「;C:\xampp\php」と追加してパスを通すことでOKになりました(コマンドプロンプト画面で「php -v」と入力し、PHPのバージョンが表示されればOKです)。

ターミナルの文字エンコーディングをUTF-8に

文字エンコーディングをUTF-8に

 Mac OS Xに関してはもともとシステムにPHPがプリインストールされています。私の手元の環境で確認した限りではMac OS X 10.6/10.7では問題なく実行できるようです。ただ、私の制作しましたGUI版のプログラム版を実行する場合、引数に日本語を指定する関係上、ターミナルの言語環境が「日本語(Mac OS)」などになっていると正常にファイルが生成されないことがあるようです。あらかじめターミナルの「環境設定」メニュー「詳細」タブで、文字エンコーディングを「Unicode(UTF-8)」に設定した上でスクリプトを実行してください。

1 ファイル出力フォルダを整える

フォルダ構成

フォルダ構成

 こちらのスクリプトは緊デジフィックス型EPUB専用のファイル生成スクリプトで、「item」フォルダ内に「xhtml」フォルダがあることを前提に連番のxhtmlファイルを生成します。この条件を満たすためにあらかじめフォルダ構成を整えておく必要があります。Finder上でゼロからフォルダを作るなら「item」フォルダを新規に作成し、「mk-epub-fixed.php」及び「source.xhtml」のファイルをコピーして、「xhtml」フォルダを作成してください。緊デジのテンプレートを元にしてももちろん問題ありません。

2 「source.xhtml」内のタイトル名を書き換える

タイトル名を書き換え

タイトル名を書き換え

 「source.xhtml」をテキストエディタで開き、「〓タイトル〓」の部分を書籍の題名に合わせて書き換え、セーブします。

3 「source.xhtml」内の短辺のピクセル数を書き換える

短辺のピクセル数を書き換える

短辺のピクセル数を書き換える

 さらに、「source.xhtml」内の、「〓短辺ピクセル数〓」の部分(3ヶ所)をスキャン画像の短辺のピクセル数に合わせて書き換え、セーブします。なお、緊デジフィックス型(電書協EPUB3ガイド仕様)の場合、全ての画像の縦横のピクセル数を統一することが規定されています。緊デジの規定では長辺のピクセル数は1536ピクセル固定です。

4 「mk-epub-fixed.php」内の出力ページ数を書き換える

出力ページ数を設定

出力ページ数を設定

 同じく「mk-epub-fixed.php」をテキストエディタで開き、「$counter = XXX;」のXXXの部分に出力ページ数を入力します。
 なお、ページ数を引数で入力できるようにしたバージョン(mk-epub-fixed-pagenumimport.php)では、こちらのステップは必要ありません。

5  コマンドプロンプト/ターミナルからスクリプトを実行します

ターミナルからスクリプトを実行

ターミナルからスクリプトを実行

 まず、「CD “itemフォルダ名へのパス”と入力し、カレントディレクトリを切り替えてから(CD+半角スペース入力後にFinderからitemフォルダをターミナルにドラッグ&ドロップ、リターン)、「php mk-epub-fixed.php」と入力してスクリプトを実行すると、xhtmlフォルダ内に指定したページ数のXHTMLファイルが生成されます。
 なお、ページ数を引数で入力できるようにしたバージョンを使用する場合には、「php mk-epub-fixed-pagenumimport.php xxxの形で指定してください(xxxの部分にページ数を入力)。

ダウンロードは以下からどうぞ。



Mac/Winのターミナル/コマンドプロンプトで使用。


(ユニバーサルバイナリでビルド、Mac OS X 10.6/10.7にて起動確認済。Mac OS X 10.5でも起動自体は可能ですが、実行時にエラーが出ました。おそらくプリインストールされているPHPのバージョンの問題と思われます。こちらあたりを参考にPHPのバージョンを5に上げれば動作するのではないかと思うのですが未検証です。)

 なお、こちらのアプリを利用したことによって生じた損害等に関しまして、私として一切の責任は負いかねますので、あくまで自己責任でご利用ください。

(2012.10.30)

 日高さんの所属を「スタジオ・ポットSD」に修正しました。また、コンテンツによってそれぞれ画像の短辺サイズ指定値を変える必要があるとのご指摘をいただき、表記を修正いたしました。コマンドライン/ターミナル用スクリプト及びMac用GUIプログラムも同様に修正しました。

(2012.10.30追記)

コメントをどうぞ

プロフィール
Jun Tajima

こちらにて、電子書籍&Web制作を担当しています。
このブログは、EPUB3をはじめとした電子書籍制作担当オペレータからの、「電子書籍の制作時にたとえばこんな問題が出てきていますよ」的な「現地レポート」です。少しでも早い段階で快適な電子書籍閲覧・制作環境が整うことを願って、現場からの声を発信していこうと目論んでおります。

当ブログ内の記事・資料は、私の所属しております組織の許諾を得て掲載していますが、内容は私個人の見解に基づくものであり、所属する組織の見解を代表するものではありません。また、本ブログの情報・ツールを利用したことにより、直接的あるいは間接的に損害や債務が発生した場合でも、私および私の所属する組織は一切の責任を負いかねます。