Mac で EPUB パッケージを作る。ePub Packager、ePub Zip for Mac OS X、Terminal

by

概要

EPUB は HTML や CSS 、画像などのファイル一式を指定の方法により ZIP 形式で圧縮し、拡張子を .epub としてパッケージ化したものです。
ただし 圧縮ツールなどを使い ZIP 圧縮をしたのでは EPUB パッケージとして不適切です。
今回は EPUB をパッケージ化する3つの方法を紹介したいと思います。

なお仕様については OEBPS Container Format (OCF) 1.0 の 4 ZIP CONTAINER に記載されています。
詳細を知りたい方は OEBPS Container Format (OCF) 1.0 日本語訳が公開されているので、目を通しておくとよいでしょう。

ePub Packager

画像:ePub Packagerアイコン
ePub Packager は EPUB で使用するファイル一式を圧縮し、EPUB としてパッケージ化する Mac OS X 用の有料アプリです。App Store から購入できます。ePub Packager は Sixty Four 社 からリリースされており、App Store で購入できます。
2012年3月20日時点でのバージョンは1.1、価格は85円。

画像:Mac App Store
Mac App Store – ePub Packager

使い方

画像:ePub Packager 起動画面
起動後の画面

画像:ファイル一式の入ったフォルダを“Drag and drop files here”にドロップ
ファイル一式の入ったフォルダを“Drag and drop files here”にドロップします。

画像:Packed successfullyと表示されたら完了
処理が進み、”Packed successfully”と表示されたら完了です。
パッケージ化された EPUB ファイルは /User/username/Library/Containers/ee.64.ePubPackager/Data/Library/ に保存されます。該当のディレクトリは「Finder」ボタンを押すと、開いてくれます。

画像:Openボタンからファイル一式の入ったフォルダを指定
またドラッグ&ドロップをしなくても、「Open」ボタンからファイル一式の入ったフォルダを指定して、パッケージ化をすることもできます。

なおパッケージ化した時の EPUB のファイル名は『フォルダ名.epub』になります。

画像:上書きのアラート表示
保存先に同じ名前の EPUB ファイルがある場合は、上書きするかどうか問われます。Overwrite を選択するとすでにあるファイルは削除されます。

画像:上書きのアラート表示

画像:Renameを選択して、違う名前を付ける
Rename を選択すると、名前を変更するダイアログが表示され、別の名前でパッケージ化することができます。

その他の機能

画像:上書きのアラート表示させずに同名のフィアルを作る
画面下部にある Overwrite にチェックを入れておくことで、上書きのアラートを表示させず、パッケージ化することができます。

画像:パッケージ化と同時に検証を行う
同様に Validate にチェックを入れておくと、パッケージ化後に検証をしてくれるようです。ただこの検証が epubcheck を使用した検証なのか、単にパッケージ自体の検証なのかは不明です。
ちなみにここで使用した EPUB ファイルは epubcheck でエラーのないことを確認しています。

ePub Zip for Mac OS X

画像:MobileRead Forums ePub Zip for Mac OS X スレッド

MobileRead Forums の『ePub Zip for Mac OS X』のスレッドに『ePub Zip 1.0.2.app』というアプリが添付されています。
このアプリは単純に EPUB に必要なファイル1式をパッケージ化をするだけのアプリです。が必要十分でしょう。
ただしライセンスが不明なので、使用はご自身の判断でお願いします。

コマンドライン

画像:Terminalアイコン

EPUB のパッケージ化は特別なアプリケーションを使用しなくても、Terminal から行えます。
アプリケーションのユーティリティフォルダ内にある Terminal を起動します。まず EPUB のファイル1式が入ったフォルダに移動します。仮にそのフォルダが「container」とすると、以下のような処理になります。

$ cd /full path to epub folder/container
$ zip -0 -X ../container.epub mimetype
  adding: mimetype (stored 0%)
$ zip -r ../container.epub * -x mimetype
  adding: META-INF/container.xml (deflated 32%)
  adding: OEBPS/content.opf (deflated 76%)
  adding: OEBPS/css/hoge.css (deflated 77%)
  adding: OEBPS/doc/fuga.xhtml (deflated 63%)
  adding: OEBPS/img/piyo.png (stored 0%)
  adding: OEBPS/toc.ncx (deflated 63%)
  ...

1行目は EPUB のパッケージに必要なフォルダへの移動です。cd で EPUB 化するファイル1式のあるフォルダに移動します。
2行目で、zip で圧縮するコマンドを送りますが、指定したものを保存する -0、ファイルの属性を保管しない -X の引数をつけ、mimetype を一つ上の階層に container.epub として保存します。
4行目は、再び zip 圧縮するコマンドです。今回は再帰的に処理する引数 -r をつけ、2行目と同様に一つ上の階層に container.epub として保存しますが、特定のファイルを除外する -x の引数を付け、mimetype を圧縮しないようにしています。
なお、この Terminal による操作は『Sus scrofa liaodongensis: EPUB ZIP コンテナの作り方』を参考にさせて頂きました。

以上、Mac で EPUB のパッケージ化する3つの方法の紹介でした。