EPUBファイルを手で作成する

提供: omotenashi-mind
2018年9月21日 (金) 06:09時点におけるKutsuna (トーク | 投稿記録)による版 (ページの作成:「<br /> <br /> EPUBファイルフォーマットの理解を深めるため、手で作成した時の手順をまとめます。<br /> <br /> = EPUBファイル構造 =...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索



EPUBファイルフォーマットの理解を深めるため、手で作成した時の手順をまとめます。

EPUBファイル構造

EPUBは定められたファイル構造にしたがって作成された複数のファイルをzip圧縮して作成されます。
以下、簡単なファイル構造の図です。

/ ----- mimetype
|
| - META-INF/
            | - container.xml
|
| - OEBPS/
         | - package.opf
         | - toc.xhtml
         | - main.xhtml


ファイル準備

mimetype

ファイルのメディアタイプを指定するためのファイルです。電子書籍フォルダの直下に配置します。ファイル名は固定です。ファイル内容も以下の内容を記載します。

application/epub+zip


META-INF/container.xml

「container.xml」は名称固定のファイルです。META-INFフォルダ配下に配置することがルール付けされています。

(ファイル内容)

1 <?xml version="1.0" ?>
2 <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
3   <rootfiles>
4     <rootfile full-path="OEBPS/package.opf" media-type="application/oebps-package+xml" />
5   </rootfiles>
6 </container>

rootfileタグにて、パッケージドキュメントのファイルパスを指定します。
ここでは、OEBPSフォルダ配下にある、「package.opf」ファイルをパッケージドキュメントとして指定します。


パッケージドキュメント

電子書籍そのものの情報を管理するためのファイルです。ファイルの配置先、ファイル名は任意ですが、上記container.xmlファイルにてそのファイルパスを指定する必要があります。

(ファイル内容)

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <package unique-identifier="idName" version="3.0" xmlns="http://www.idpf.org/2007/opf" xml:lang="ja">
 3   <!-- 書籍情報 -->
 4   <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
 5     <dc:identifier id="idName">urn:uuid:0fa99cb8-f735-4994-91fd-6fb3667582d0</dc:identifier>
 6     <dc:publisher>omotenashi-mind.com</dc:publisher>
 7     <dc:title>はじめての電子書籍</dc:title>
 8     <dc:language>ja</dc:language>
 9     <meta property="dcterms:modified">2018-09-19T13:50:40Z</meta>
10   </metadata>
11   <manifest>
12     <item id="nav" href="toc.xhtml" media-type="application/xhtml+xml" properties="nav" />
13     <item id="main_xhtml" href="main.xhtml" media-type="application/xhtml+xml" />
14   </manifest>
15   <spine page-progression-direction="default">
16     <itemref idref="nav" />
17     <itemref idref="main_xhtml" />
18   </spine>
19 </package>

このファイルにて、書籍の出版社、著者などの基本的情報を定義するとともに、(表示順など)書籍内容についても定義しています。 パッケージドキュメントの詳細は「EPUB_Pacakgesについて」でもまとめていますので、そちらもご覧ください。

ナビゲーションドキュメント(目次)

ファイル名は任意で決められます。どのファイルがナビゲーションファイルかは上記パッケージドキュメントにて指定します。
ここでは「toc.xhtml」としています。

(ファイル内容)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE html>
 3 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
 4 <head>
 5   <title>目次</title>
 6 </head>
 7 <body>
 8   <nav epub:type="toc">
 9     <h1>目次</h1>
10     <ol>
11       <li><a href="main.xhtml">最初のページ</a></li>
12     </ol>
13   </nav>
14 </body>
15 </html>


書籍内容ファイル

書籍内容そのものを保持するファイルです。ファイル名は任意です。また、複数ファイルに分割することも可能です。
サイズが大きくなるようなケースでは、複数ファイルに分割することが推奨されています。
ファイルの表示順序については、パッケージドキュメント内にて定義できます。

(ファイル内容)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE html>
 3 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
 4 <head>
 5   <title>本文</title>
 6 </head>
 7 <body>
 8 手作り電子書籍です。
 9 </body>
10 </html>



epubファイル作成

ファイルが一通り準備できたら、いよいよ電子書籍ファイルの作成です。linuxであれば以下のようなコマンドで作成可能です。
epubファイルはzip圧縮ファイルですが、1つ留意すべき点として、そのzipファイルの先頭ファイルは非圧縮の状態のmimetypeファイルを含んでいる必要があります。
以下、その手順です。コマンドは電子ファイルを配置したフォルダ直下で実行してください。

zip -0 sample.epub mimetype

これで、非圧縮状態のmimetypeファイルを含んだzipファイル「sample.epub」が作成されました。
次に、残りのファイルを圧縮して追加します。

zip -9r sample.epub META-INF OEBPS


出来上がったファイルをepubリーダーで読み込ませてみましょう。無事に書籍として閲覧できるようになっていると思います。