便利なepubcheckを使ってみよう(上) 使い方編

EPUBコンテンツやビューアアプリ開発者の皆様、epubcheckはちゃんと使ってますか?

epubcheckはEPUBファイルの正当性を検証するためのツールで、IDPFのサイトでも採用されるなど最もメジャーなツールです。
EPUB2とEPUB3のチェックに対応していて、自分が制作したEPUBコンテンツがEPUB仕様に則っているかどうか簡単にチェックすることができます。

コマンドラインツール、Javaライブラリ、Webサーバの3つの形態で利用することができますが、一般的にはコマンドラインツールとして使うことが多いと思いますので、その使い方をご紹介します。

準備

JRE 1.6以上を入れて、ダウンロードページからepubcheckをダウンロードして解凍しておきます。

基本の使い方

一番簡単な使い方は、以下のようにチェックしたいファイル名を指定するだけのものです。

$ java -jar epubcheck-3.0.jar mybook.epub
Epubcheck Version 3.0

No errors or warnings detected.

エラーがある場合はstderrに内容が表示され、終了コードが1になります。

OPFファイルだけチェック

EPUBを作っている途中などで、OPFファイルだけチェックすることもできます。

$ java -jar epubcheck-3.0.jar mybook/OPS/content.opf -mode opf -v 3.0
Epubcheck Version 3.0

WARNING: mybook/OPS/standard.opf/: File is validated as a single file of type opf and version 3.0. Only a subset of the available tests is run.
No errors or warnings detected.

modeには他にnav,xhtml,svgなども指定することができます。

作業ディレクトリの状態でチェック

EPUBを作成中、いちいちZIPにしないでそのままチェックすることができます。

$ java -jar epubcheck-3.0.jar mybook/ -mode exp

「-save」オプションをつけると、ディレクトリをチェックするついでに、ZIPにしてEPUBファイルを作ってくれます。「mimetypeファイルを先頭に置くためにzipコマンドに-0オプションをつけて…」などを毎回やらなくてすみます。
※カレントディレクトリにmybook.epubが生成されます。

$ java -jar epubcheck-3.0.jar mybook/ -mode exp -save

EPUBの生成をzipコマンドではなくてこの方法にすることで、うっかり間違ったEPUBファイルを生成してしまうことを予防できますね。

その他

「-out」オプションを指定することで、いくつかの情報をXML形式で出力することができます。

$ java -jar epubcheck-3.0.jar mybook.epub -out result.xml

experimentalな機能なのでフォーマットは今後変わる可能性がありそうですが、タイトル・著者名などの基本的なメタデータは一通り取得できるので、簡易的なEPUBパーサーライブラリとしても使うことができそうです。

次回は、実際の運用でやりたくなる、epubcheckのカスタマイズをしてみます。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。得意分野はWeb全般、Ruby on Rails、Androidアプリケーションなど。最近はBlinkと格闘中。軽度の資格マニアで、情報処理技術者試験(高度10区分)などを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ