電子書籍 ePub 電子書籍の作り方2 シンプル ePUB フォーマット ガイド :How to create an ePub ebook? Simple ePUB Format Guide

「ePub電子書籍の作り方2」では実際のePubファイルの構成を簡潔に紹介します。
尚、以下の記事をePubファイル化したEpubFormatGuide20100527.epubを用意していますので、参考にしてください。(実際にはePUBファイルを作成した後に、そのソースコードをサイトに掲載しました。そのため写真もセンタリングのままです。)
作成にはDreamweaverを使用しています。※確認はEPUBReader、Win版Stanzaのみです。iPad実機テストは行っていません。(誰かお願い!)

※Twitterで初期にリリースしたファイルがAdobe Digital EditionsとReader Libraryで表示されないとのご指摘を受けました。
調べてみると、Reader Libraryはチェックが厳しく拡張子のxhtmlやタグの記述がxhtml準拠で無い部分などがありました。(Dreamweaverをちょっと信じ過ぎたかも、、)
Reader Libraryに関しては、ファイルが表示されるようになっても文字化けが解消しませんでしたが、日本語フォントを埋め込むと文字化けは解消しました。
この場合、両リーダーとも日本語言語指定は不要な様子です。(指定しておいた方が良いと思いますが。)
※EpubFormatGuide20100527.epubはフォントを埋め込んでいませんので、Reader Libraryで文字化けします。

ePUB Format Guide

はじめに

この書籍はePUBフォーマットファイルの構造を簡潔に記したものです。
ePUBフォーマットファイルの作成を用意に理解するために極力シンプルな記述を紹介しています。
詳細、又はより正確な情報は以下をご覧下さい。
http://lost_and_found.lv9.org/opf/opf_2.0_final_spec_ja.html 日本語
http://www.idpf.org/2007/ops/OPS_2.0_final_spec.html 英語
http://www.idpf.org/2007/opf/OPF_2.0_final_spec.html 英語
http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm 英語

基本

ePUBファイルはXML、HTML、CSS、画像等から構成されています。
また全てのファイルはzip形式で圧縮され拡張子がepubでなくてはなりません。
zip形式での圧縮方法は「圧縮」をご覧下さい。

ファイル構成

このドキュメントでは最も単純なePUBファイル例を基本に説明いたします。
必須ファイル以外は必要のないものもありますが、ファイルの構成が理解し易く応用可能なように設置しています。
mimetype、META-INF、container.xmlは名称、所在とも変更できませんが他のファイルは自由にアレンジ可能です。
必要な場合は適宜フォルダを作成し分類します。

  • EpubFormatGuide
    • mimetype
    • META-INF
      • container.xml
    • content.opf
    • toc.ncx
    • page001.xhtml
    • style.css
    • cover.jpg

mimetype

必須ファイルです。
名前と所在は変更できません。
このファイルがzip圧縮されたepubファイルであることを示します。

内容

application/epub+zip

META-INF

必須フォルダです。
名前と所在は変更できません。
container.xmlを含みます。

container.xml

必須ファイルです。
名前と所在は変更できません。
content.opf を指定します。
content.opfのファイル名、所在を変更している場合はファイル名と所在をフルパスで記述します。

内容例

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

content.opf

必須ファイルです。
名前と所在は任意です。
epubファイルを構成するファイルへのパスとファイル名を記述します。

  • metadata
    • title タイトル (必須)
    • language ランゲージコード (必須)
    • identifier URIやISBNなどを使用したユニークなID (必須)
    • その他の項目はオプション
  • manifest
    mimetype, container.xml, content.opf以外のドキュメントのファイルリスト。(記述順は自由です。)
  • spine
    実際のファイルの読み順を指定します。idrefはユニークでなければなりません。

内容例

<?xml version=”1.0″ encoding=”UTF-8″?>
<package version=”2.0″ xmlns=”http://www.idpf.org/2007/opf”
unique-identifier=”BookId”>
<metadata xmlns:dc=”http://purl.org/dc/elements/1.1/”
xmlns:opf=”http://www.idpf.org/2007/opf”>
<dc:title>Epub Format Guide</dc:title>
<dc:creator opf:role=”aut”>伊丹シゲユキ</dc:creator>
<dc:language>ja</dc:language>
<dc:rights>Public Domain</dc:rights>
<dc:publisher>VANrai,Inc.</dc:publisher>
<dc:identifier id=”BookId”>itami.info123456789</dc:identifier>
</metadata>
<manifest>
<item id=”ncx” href=”toc.ncx” media-type=”text/xml” />
<item id=”style” href=”style.css” media-type=”text/css” />
<item id=”page001″ href=”page001.xhtml” media-type=”application/xhtml+xml” />
<item id=”imgl” href=”images.jpg” media-type=”image/gif” />
</manifest>
<spine toc=”ncx”>
<itemref idref=”page001″ />
</spine>
</package>

toc.ncx

任意のファイルです。
名前と所在は任意です。
epubファイルの目次です。
以下にアトリビュートを記します。

  • head
    • uid
      content.opfで付けられたユニークなIDです。
    • depth
      1以上の整数。navMap内のコンテンツ階層の深さ。
    • totalPageCount
      0を指定します。
    • maxPageNumber
      0を指定します。
  • navMap
    コンテンツテーブルです。
  • navPoint
    • id
      ユニークなIDを付与します。
    • playOrder
      1からの整数を付与します。
      navMap での並び順を指定します。
  • その他詳細(英文): http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NCX

内容例

<?xml version=’1.0′ encoding=’UTF-8′?>
<!DOCTYPE ncx PUBLIC “-//NISO//DTD ncx 2005-1//EN”
“http://www.daisy.org/z3986/2005/ncx-2005-1.dtd”>
<ncx xmlns=”http://www.daisy.org/z3986/2005/ncx/” version=”2005-1″>
<head>
<meta name=”dtb:uid” content=”itami.info123456789″ />
<meta name=”dtb:depth” content=”1″ />
<meta name=”dtb:totalPageCount” content=”0″ />
<meta name=”dtb:maxPageNumber” content=”0″ />
</head>
<docTitle>
<text>Epub Format Guide</text>
</docTitle>
<navMap>
<navPoint id=”navPoint001″ playOrder=”1″>
<navLabel><text>ページトップ</text></navLabel>
<content src=”page001.xhtml” />
</navPoint>
<navPoint id=”navPoint002″ playOrder=”2″>
<navLabel><text>はじめに</text></navLabel>
<content src=”page001.xhtml#anchor001″ />
</navPoint>
<navPoint id=”navPoint003″ playOrder=”3″>
<navLabel><text>基本</text></navLabel>
<content src=”page001.xhtml#anchor002″ />
</navPoint>
<navPoint id=”navPoint004″ playOrder=”4″>
<navLabel><text>ファイル構成</text></navLabel>
<content src=”page001.xhtml#anchor003″ />
</navPoint>
<navPoint id=”navPoint005″ playOrder=”5″>
<navLabel><text>mimetype</text></navLabel>
<content src=”page001.xhtml#anchor004″ />
</navPoint>
<navPoint id=”navPoint006″ playOrder=”6″>
<navLabel><text>META-INF</text></navLabel>
<content src=”page001.xhtml#anchor005″ />
</navPoint>
<navPoint id=”navPoint007″ playOrder=”7″>
<navLabel><text>container.xml</text></navLabel>
<content src=”page001.xhtml#anchor006″ />
</navPoint>
<navPoint id=”navPoint008″ playOrder=”8″>
<navLabel><text>content.opf</text></navLabel>
<content src=”page001.xhtml#anchor007″ />
</navPoint>
<navPoint id=”navPoint009″ playOrder=”9″>
<navLabel><text>toc.ncx</text></navLabel>
<content src=”page001.xhtml#anchor008″ />
</navPoint>
<navPoint id=”navPoint010″ playOrder=”10″>
<navLabel><text>圧縮</text></navLabel>
<content src=”page001.xhtml#anchor009″ />
</navPoint>
<navPoint id=”navPoint011″ playOrder=”11″>
<navLabel><text>バリデート</text></navLabel>
<content src=”page001.xhtml#anchor010″ />
</navPoint>
</navMap>
</ncx>

page001.xhtml

任意のファイルです。
名前と所在は任意です。
コンテンツページです。
多くのリーダーソフトで表示可能にするために、拡張子xhtmlのvalidな記述が推奨されます。
また、日本語表示のために<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”ja” lang=”ja”>の記述とフォトの埋め込みが良いでしょう。

style.css

任意のファイルです。
名前と所在は任意です。
スタイルシートファイルです。
多くのリーダーソフトで問題無く日本語表示するためにフォトの埋め込み指定を行うのが良いでしょう。

cover.jpg

任意のファイルです。
名前と所在は任意です。
画像ファイルです。

圧縮

関係する全てのファイルをzip圧縮し、拡張子をepubとしなければなりません。
このときmimetypeは非圧縮で最初に読み込まれるように圧縮する必要があります。
※本ePUBファイルは簡易にVISTAので圧縮(マウス右クリック>送る>圧縮(zip形式)フォルダ)しています。 EPUBReaderやWin版Stanza では問題は見られませんが、障害等見られましたら是非ご一報ください。
zipコマンド:http://lowfatlinux.com/linux-zip-manual.html
コマンド例:

zip -Xr9D EpubFormatGuide.epub mimetype *

バリデート

http://threepress.org/document/epub-validate

※伊丹シゲユキはこのファイルの正確性を保証するものではありません。
※このファイルに起因する損害等発生等に関して一切責任を負いません。
※内容に間違い等ありましたらご報告頂ければ幸いです。
※グラフィックデザイン、WEB、電子書籍に関してはお気軽にお問い合わせください。
※以下のページを参考にしました。この場をかりてお礼申し上げます。
http://naoki.sato.name/lab/archives/45
http://www.kobu.com/docs/epub/index.htm
http://www.hxa.name/articles/content/epub-guide_hxa7241_2007.html

hp:https://itami.info/ mail:info@itami.info twitter:@buzzlyhan

おすすめ