電子書籍ファイルはどのように作られ、どのように読まれるのか?
1. .epubファイル = .zipファイル
はい、その通りです。電子書籍ファイルの拡張子として知られる .epub は、実は複数のファイルを圧縮した .zipファイルと同じです!ただし、.epubという名前を別途指定することで、ユーザーがファイルをクリックして開く際、コンピューターに「ねぇ、私は電子書籍ファイルだよ?電子書籍ファイルを読めるアプリで私を実行してね」と伝えるのです。
2. .epubファイルの中に含まれるもの
.epubも結局は圧縮ファイルなので、名前を .zip に変更した後、そのまま圧縮を解除すると、複数のファイルがそのまま見えます。(Macでは、該当ファイルがあるフォルダでターミナルを開き、unzip [電子書籍名].epub -d [保存するフォルダ名]を入力すると解除できます。)どの電子書籍ファイルでもこの方法で圧縮を解いてみると、その中身は以下のように構成されているはずです。
a) mimetype
ただのテキストファイルで、次のように書かれています。
application/epub+zip
「私は .epubファイルだよ」という確認のための身分証明書の役割を果たします。このファイルは絶対に書き換えてはいけません。
b) META-INF
container.xml と content.opf の位置を教えます。この「META-INF」というフォルダ名と「container.xml」というファイル名も勝手に変えてはいけません。これがないと、電子書籍リーダーアプリが本の情報を正しく読み込むことができません。
c) 内容が格納されたフォルダ
(自由に構成しても問題ありませんが、どのように構成されているかの情報を container.xml にしっかり記録する必要があります。)
- content.opf: この電子書籍ファイルに関する詳細情報。XML言語で書かれており、本の設計図(本のタイトル、著者、言語、固有番号など、実際に含まれるファイルのリスト、ファイルの位置、本文の表示順序など)を示します。
- 目次(ePubのバージョンにより toc.ncx または nav.xhtml): 本のタイトルと、そのタイトルをクリックすると該当の章へ行けるようにリンクが格納されています。
- 内容(chapter.xhtml): 本の内容が xhtmlの文法であるタグを使って記述されています。
例:<p> 彼は <b>このように</b> 言った。 </p> - スタイル(style.css): どのタグがどのようなスタイル(色、大きさなど)で表示されるかを定めるルールです。
例: 「<p>タグは11pxの大きさ、灰色で表示してね!」 - images: book_cover.jpg — 本の表紙画像で、content.opf に「このフォルダのこの名前の画像が本の表紙です」と記録されています。
3. 電子書籍ファイルはどのように読まれるのか?
ここまでの内容は、思ったより単純ですよね? 実は「電子書籍ファイル」というものは「ミニウェブサイト」だと見なすことができます。ウェブサイトを作成する際に使われる技術が、ほぼそのまま電子書籍ファイルに使われています。電子書籍ファイルがウェブサイトだとすれば、「電子書籍リーダーアプリ(eBook Reader App)」は、Chrome、Safari、Edgeなどといったブラウザの役割を果たすと見ることができます。ただし、オフライン専用であるという点を除いてです。私たちが「電子書籍ファイルをダウンロード」するときは、書店のサーバーから本を受け取る必要があるためインターネットが必要です。しかし、一度そのファイルが自分のデバイスに保存されてしまえば、あらかじめインストールされている電子書籍リーダーアプリを利用して、インターネット接続なしでもそのファイルの内容を解釈して画面に表示することができるのです。
実際には、これらのプロセスを直接コードで作りたい人でない限り、Adobe InDesignやその他の各種電子書籍編集ツールで作成して書き出すだけで、簡単に電子書籍形式のファイルを得ることができます。ただし、他の人がやらないような珍しい作業をしたい場合や、問題が発生したファイルの原因箇所を自分の目で確認したい場合は、電子書籍ファイルの構成に関する知識があると役立つでしょう。
以上、電子書籍ファイルがどのように作られ、どのように読まれるかについての説明でした。