ePubファイルを作成する

専用ツールなしでePubファイルを作成する方法を説明します。

EPUBとは?

EPUBは「Electronic PUBlication」の略で、W3Cが規格を策定している国際的な電子書籍フォーマットです。もともとは米国の電子書籍標準化団体の一つであるIDPF(International Digital Publishing Forum)が規格を策定していましたが、2017年2月1日にW3Cと正式に統合1されました。

インターネット上では、epubePubなどと表記されることもあります。オープンでシンプルなため、対応する電子書籍ハードウェアや電子書籍アプリケーションは多くあります。

2024年4月現在の最新バージョンは3.1で、非常に多様な機能を備えています。

EPUBの歴史

内容
1999年 Open eBook Forum(IDPFの前身)がOeBPSを発表
2007年 IDPFがEPUBを発表
2010年 IDPFがEPUB2を推奨仕様として承認
2011年 IDPFがEPUB 3.0を発表
2012年 電子書籍販売開始
2016年 IDPFがEPUB 3.1仕様書を公開
2017年 IDPFがW3Cに統合

EPUBは2007年9月、米国の電子出版業界の国際標準化団体であるIDPF(International Digital Publishing Forum)によって発表されました。IDPFはもともとOpen eBook Forumという名称の団体で、電子書籍のための標準であるOpen eBook Publication Structure(OeBPS)を1999年に公開していました。IDPFはこのOeBPSを次のように分けてEPUBを作りました。

  • Open Publication Structure(OPS): コンテンツ構造に関する規格
  • Open Packaging Format(OPF): 各ファイルを整理するための規格
  • OeBPS Container Format(OCF): 各ファイルをアーカイブするための規格

2010年6月にはEPUB 2.0が草案標準として公開され、2011年10月にIDPFはEPUB 3を公式標準として採用しました。EPUB 3が発表されると、非英語圏の国々でもEPUBの普及がより活発になりました。その理由は、EPUB 3で機能が向上し、新しく追加された機能によって多言語対応が拡大されたためです。

EPUB 3の発表後、海外の電子書籍ストアがEPUB 3リーダーを多く採用し、それまで主流だった電子書籍フォーマットからEPUBへと流れが変わりました。そして現在、EPUBは電子書籍フォーマットとして一般的に定着しつつあります。

2017年2月、IDPFはW3C(World Wide Web Consortium)に統合されました。W3CはHTML、CSS、SVG、XMLなど、Web技術の基盤を策定する世界的な標準化団体です。EPUBがこうしたWeb技術を活用していることを考えると、この統合は十分に納得できます。

EPUBの作り方

EPUBファイルを作る方法はいくつかありますが、最も一般的な方法は次のとおりです。

  1. 元コンテンツを準備する: まず、EPUBファイルに変換するコンテンツを準備します。通常はワープロソフトや出版ソフトウェアを使って本や文書を作成します。元ファイルは主にMicrosoft WordやAdobe InDesignのようなプログラムで作成されます。
  2. EPUB変換ツールを使う: 準備した元ファイルをEPUBファイルへ変換するツールを使います。さまざまなツールがありますが、一般的によく使われるものには次のようなものがあります。
    • Calibre: Calibreは無料で使えるオープンソースの電子書籍管理ソフトウェアです。このソフトウェアを使って、さまざまな形式の文書をEPUBへ変換できます。
    • Sigil: Sigilも無料のオープンソースEPUBエディターです。Sigilを使うと、EPUBファイルを直接作成し、編集できます。
  3. EPUBファイルの生成と編集: 選択したツールを使って元ファイルをEPUBファイルへ変換します。多くのツールは、変換後にもコンテンツを編集できる機能を備えています。これにより、目次の作成や画像の挿入などの作業ができます。
  4. 検収とテスト: EPUBファイルが完成したら、検収してテストします。さまざまなデバイスやEPUBビューアーを使って、ファイルが正しく表示されるか確認します。レイアウト、画像、テキストの流れなどが正しく表示されるか確認する必要があります。
  5. 配布: EPUBファイルが完成し、テストが終わったら、目的のプラットフォームへアップロードまたは配布できます。Google Play Books、Amazon Kindle Direct Publishing、Apple Booksなどを通じて行えます。

上記の手順に従えば、EPUBファイルを作成して配布できます。必要であれば、追加編集やカスタマイズのためにEPUBファイルを修正できます。

EPUBファイル形式の理解

EPUBは一定のルールに従う構造を持つZipアーカイブファイルです。EPUBファイル構造を簡単に図で表すと次のようになります。ここではEPUBバージョン3.0を基準にします。

EPUBファイル

ファイルの場所や名前まで仕様で固定されているものと、ファイル名や場所を任意に変更できるものがあります。それぞれの役割を見ていきます。

mimetype

ファイルのメディアタイプを指定するためのファイルです。電子書籍フォルダーの直下に置きます。ファイル名は固定です。ファイルの内容は次のとおりです。

application/epub+zip

container.xml

container.xmlは名前が固定されたファイルで、META-INFフォルダーの下に置くよう規則化されています。

META-INF/container.xml

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

<rootfile>タグでパッケージ文書のファイルパスを指定します。ここでは、OEBPSフォルダー下のpackage.opfファイルをパッケージ文書として指定しています。

OEBPS

使用するコンテンツ本体(HTML、画像など)を配置するフォルダーです。このフォルダーの作成は任意で、名前も自由に決められます。一般的にはOEBPS2と表現されることが多いです。EPUB 3では、このフォルダーの作成が推奨されています。また、このフォルダーにはコンテンツの構造を定義するファイルも配置します。

たとえば、toc.ncxには目次が設定され、package.opfには出版物のタイトル、著者などのメタデータと、文書ファイルの読み順などが記述されています。

パッケージ文書

電子書籍自体の情報を管理するためのファイルです。ファイルの場所や名前は任意ですが、上記のcontainer.xmlファイルでそのパスを指定する必要があります。

OEBPS/package.opf

<?xml version="1.0" encoding="utf-8"?>
<package unique-identifier="idName" version="3.0" xmlns="http://www.idpf.org/2007/opf" xml:lang="ko">
  <!-- 本の情報 -->
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:identifier id="idName">urn:uuid:9f3b7eb2-8724-4f8a-a80c-f667f4668378</dc:identifier>
    <dc:publisher>著者名</dc:publisher><!-- 著者名 -->
    <dc:title>最初の電子書籍</dc:title><!-- 電子書籍タイトル -->
    <dc:language>ko-KR</dc:language>
    <meta property="dcterms:modified">2024-04-14T09:46:40Z</meta><!-- 修正日 -->
  </metadata>
  <manifest>
    <item id="nav" href="toc.xhtml" media-type="application/xhtml+xml" properties="nav" />
    <item id="main_xhtml" href="main.xhtml" media-type="application/xhtml+xml" />
  </manifest>
  <spine page-progression-direction="default">
    <itemref idref="nav" />
    <itemref idref="main_xhtml" />
  </spine>
 </package>

ナビゲーション文書(目次)

ファイル名は任意に決められます。どのファイルがナビゲーションファイルなのかは、上記のパッケージ文書で指定します。

OEBPS/toc.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
  <title>目次</title>
</head>
<body>
  <nav epub:type="toc">
    <h1>目次</h1>
    <ol>
      <li><a href="main.xhtml">最初のページ</a></li>
    </ol>
  </nav>
</body>
</html>

本文

本文そのものを保存するファイルです。ファイル名は任意です。また、複数のファイルに分割することもできます。サイズが大きくなる場合は、複数のファイルに分割することをおすすめします。ファイルの表示順はパッケージ文書内で定義できます。

OEBPS/main.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
  <title>本文</title>
</head>
<body>
最初の電子書籍の内容です。
</body>
</html>

EPUBを直接作ってみる

EPUBファイルの構造を理解したら、上記の構造に合わせてそれぞれのファイルを作成します。

% tree
.
├── META-INF
│   └── container.xml
├── OEBPS
│   ├── main.xhtml
│   ├── package.opf
│   └── toc.xhtml
└── mimetype

あとは、これらのファイルをZipで圧縮して保存するだけです。

ただし、その前にEPUBフォーマットの仕様としてもう一つ知っておくべきことがあります。それは「Zipファイルの最初のファイルとして、非圧縮状態のmimetypeファイルを含める必要がある」という点です。

したがって、Zip圧縮するときは次の手順が必要です。

  1. mimetypeを圧縮率0(非圧縮)でZipファイルに追加します。
    zip -0 sample.epub mimetype
    
  2. その他のファイルを最高圧縮率(9)でZipファイルに追加します。
    zip -9r sample.epub META-INF OEBPS
    

実際にコマンドを順に実行すると、次のようになります。

% zip -0 sample.epub mimetype
  adding: mimetype (stored 0%)
% zip -9r sample.epub META-INF OEBPS
  adding: META-INF/ (stored 0%)
  adding: META-INF/container.xml (deflated 33%)
  adding: OEBPS/ (stored 0%)
  adding: OEBPS/main.xhtml (deflated 17%)
  adding: OEBPS/toc.xhtml (deflated 27%)
  adding: OEBPS/package.opf (deflated 45%)

実際に完成したEPUBファイルをEPUBビューアーで開けるか確認してみましょう。次のようにファイルが開けば、EPUBファイルの作成は成功です。

EPUBサンプル

まとめ

今回は、EPUBファイルの作成方法を通じて、簡単なEPUBフォーマットについて説明しました。EPUBフォーマットを理解する助けになれば幸いです。


  1. https://www.w3.org/press-releases/2017/idpf-w3c-combination/ ↩︎

  2. 後で紹介するEPUBの歴史に出てくるOpen eBook Publication Structureに由来するようです。 ↩︎