Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
11
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

EPUB書籍の内部に足を踏み入れる

この記事はePub Advent Calendar15日目の記事です。

電子書籍はKindleなどによって今かなり流行っているので、利用している人も多いと思います。
そんな電子書籍の内部がどうなってるかって気になりませんか?今回は電子書籍のファイルフォーマット規格の一つであるEPUBを取り上げ、その内部構造に足を踏み入れていこうと思います。

そもそもなんでEPUBなの

電子書籍に複数のフォーマットが存在していることはご存知でしょうか。
EPUBを始め、XMDF、.book、AZW(Kindleはこれ)などがあり、PDFも含まれます。

EPUBは、IDPF (International Digital Publishing Forum)が策定したオープンフォーマットな規格です。
さらに、xhtmlやcssといったWeb標準規格に対応していることから、多くのアプリケーションに用いられ、標準フォーマットとなっています。
(Wikipediaから持ってきました。https://ja.wikipedia.org/wiki/EPUB)

要は使いやすくて人気だからってことです。

EPUBの中身を拝見...

それでは、EPUBについて理解したところで、中身を見ていきましょう。
ババーン!

スクリーンショット 2015-12-02 14.01.39.png

これが、EPUBの中身です。
順番に見ていきましょう。

EPUB container

これはEPUB書籍を構成するファイルをすべて含むフォルダです。「EPUB container」というのは仮称で、実際はこのフォルダの名前がEPUB書籍のタイトルになっています。

mimetype

これはEPUBのメディアタイプが記述されています。標準では"application/epub+zip"と書かれています。

META-INF

このフォルダにはcontainer.xmlが入っています。

container.xml

このファイルには、ルートファイルの場所と、そのメディアタイプが記述されています。
ルートファイルは標準ではpackage.opfのことを指します。

package.opf

このファイルはEPUB書籍のタイトルや著者などのメタデータが記述されています。さらに、章ごとに分かれたそれぞれのコンテンツ文書の読み順も記述されており、これをもとに並び替えられます。

nav.xhtml

このファイルはナビゲーションドキュメントで、書籍の特定の場所にジャンプできたりするなど、利便性を向上させるためのものです。

その他

上記の他に、章ごとの内容が書かれたコンテンツ文書や、CSSファイル、画像ファイルなどが入っています。
CSSや画像などが含まれているのが、電子書籍の特徴ですよね。

最後に

EPUBの内部構造を見てきましたが、どうでしたでしょうか。
普段読んでいる電子書籍の内部はあまり気にしないかもしれませんが、気にしてみると案外面白いものです。

自分もけっこう知ったばかりであるので、なにかおかしな点などありましたら、ご指摘いただきたいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
11
Help us understand the problem. What are the problem?