2012年10月03日
第6回 ブログから電子書籍を作るには(1)
オープンフォーマットでかつWeb標準技術で記述されているEPUBは、パソコンやタブレット、スマートフォンなどの多くの環境で、長期的に利用できるようなフォーマットとなるだろうと期待されています。自分のブログや撮りためたデジカメの画像などをEPUB形式に書き出すことで、コストをかけず自分や家族の記録を共有したり閲覧に便利な電子書籍として利用することができます。
EPUB形式の電子書籍は、HTMLなどのコンテンツの内容となるドキュメントとその書籍に関わるメタ情報をパッケージしたファイルであるため、特別なアプリケーションがなくても誰でも作ることができます。
今回のコラムでは、特別なツールを使わずにテキストエディターでブログをEPUBに変換してみたいと思います。
EPUBの構成
EPUB 3はHTML5などのドキュメントと出版物の情報をzip圧縮し「.epub」の拡張子をつけたものです。この図は今回の操作でつくる、シンプルなEPUBの構成図です。

コンテンツ文書
EPUBコンンテンツの内容にあたるファイルは「コンテンツ文書」といいます。EPUB 3では、コンテンツ文書は主にXHTML5で記述します。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" >
<head>
<meta charset="utf-8"></meta>
<title></title>
</head>
<body>
<h1>「マーケティング・リフレーミング」</h1>
<p>
昨年からちょうど1年間程、マーケティング関連の本を数名で読みながらディスカッションするというスタイルの読書会を月に1回行っています。・・・
</p>
</body>
</html>
パッケージ文書
出版物の書誌情報やページの順序などを記述したメタ情報を記述したファイルを「パッケージ文書」と言います。パッケージ文書はXMLで記述され、「.opf」の拡張子をもちます。
今回作成するEPUBはほぼ最小の情報のみで構成していますが、一般的な電子書籍ではパッケージ文書の「metadata要素」に出版物の著者や発行元などを記述します。 またEPUBではパッケージ文書の「manifest要素」にEPUBを構成する全てのリソースのパスと一意のidを記述しなければなりません。またEPUBには通常複数のコンテンツ文書のリソースが含まれますが、これらのリソースは「spin要素」に読む順番に記述されます。
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" xml:lang="ja" version="3.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>読書会の記録</dc:title>
<dc:language>ja</dc:language>
<dc:identifier id="pub-id">jp-dogrun-blog-20120927</dc:identifier>
<meta property="dcterms:modified">2012-09-27T12:00:00Z</meta>
</metadata>
<manifest>
<item id="TOC" href="toc.xhtml" properties="nav" media-type="application/xhtml+xml"/>
<item id="chapter1" href="chapter1.xhtml" media-type="application/xhtml+xml"/>
<item id="chapter2" href="chapter2.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<spine page-progression-direction="ltr">
<itemref idref="chapter1" linear="yes"/>
<itemref idref="chapter2" linear="yes"/>
</spine>
</package>
ナビゲーション文書
ナビゲーション文書は目次などを記録した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" lang="ja" xml:lang="ja">
<head>
<title>読書会の記録</title>
</head>
<body>
<nav xmlns:epub="http://www.idpf.org/2007/ops" epub:type="toc" id="toc">
<h1>目次</h1>
<ol>
<li><a href="chapter1.xhtml" id="chapter1">「マーケティング・リフレーミング」</a></li>
<li>
<a href="chapter2.xhtml" id="chapter2">「マーケティングリフレーミング」と共創性</a></li>
</ol>
</nav>
</body>
</html>
その他のファイル
EPUB 3には上記の出版物リソースの他に、「mimetype」と「META-INF/container.xml」が必要です。
「mimetype」は下記のようにファイルのメディアタイプが記述され、EPUBコンテナの先頭に無圧縮で配置する必要があります。
application/epub+zip
「container.xml」には前述のパッケージ文書のパスが記述されています。
<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" />
</rootfiles>
</container>
EPUBコンテナのパッケージ
これで一通りブログをEPUBとして書き出すために必要なファイルがそろいました。このファイルをzipでアーカイブすれば良いのですが、EPUBでは「mimetype」がコンテナの先頭に無圧縮で配置されている必要があり、そのためzipコマンドを2回にわけて実行することになります。これまで作成したファイルのあるディレクトリに移動して下記コマンドを実行してください( 以下macのターミナルを使った場合の例です)。
$ zip -0xq myblog.epub mimetype
$ zip -r myblog.epub * -x mimetype
この操作でパッケージされたEPUBファイルを下記にアップロードしています。iOSのiBooksやAndroidのHimawari Readerなどで読むことができます。
こちらにアクセス→ http://dogrun.jp/epub/myblog.epub
今回はEPUBがどのように構成されているか知るために特別なツールを使わずにEPUBを作成してみましたが、ミスなく全てのドキュメントを作成するのはかなり大変な作業です。さすがに電子書籍をつくる度にこれらの文書を手書きしていたのではあまりに時間がかかりすぎるため、通常はEPUBを生成する時は何らかの専用のツールを使うことになります。
そこで次回は専用のツールを使ってEPUBをつくる方法にトライしてみたいと思います。
参考
◆いいパブッ!!- よくわかるEPUB 3
→ http://www.slideshare.net/lost_and_found/iipabu-11542571
◆EPUB3標準マニュアル(押山隆 著)
------------------------------------------
◆このコラムのほかの回を読む
第1回 本の価値から電子書籍を想像する
第2回 理解をナビゲーションする電子書籍デザイン
第3回 電子書籍と読書体験のクラウド化
第4回 EPUB 3
第5回「本」だけではない電子書籍活用アイデア
第6回 ブログから電子書籍を作るには(1)
第7回 ブログから電子書籍を作るには(2) (最終回)
EPUB形式の電子書籍は、HTMLなどのコンテンツの内容となるドキュメントとその書籍に関わるメタ情報をパッケージしたファイルであるため、特別なアプリケーションがなくても誰でも作ることができます。
今回のコラムでは、特別なツールを使わずにテキストエディターでブログをEPUBに変換してみたいと思います。
EPUBの構成
EPUB 3はHTML5などのドキュメントと出版物の情報をzip圧縮し「.epub」の拡張子をつけたものです。この図は今回の操作でつくる、シンプルなEPUBの構成図です。

コンテンツ文書
EPUBコンンテンツの内容にあたるファイルは「コンテンツ文書」といいます。EPUB 3では、コンテンツ文書は主にXHTML5で記述します。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" >
<head>
<meta charset="utf-8"></meta>
<title></title>
</head>
<body>
<h1>「マーケティング・リフレーミング」</h1>
<p>
昨年からちょうど1年間程、マーケティング関連の本を数名で読みながらディスカッションするというスタイルの読書会を月に1回行っています。・・・
</p>
</body>
</html>
パッケージ文書
出版物の書誌情報やページの順序などを記述したメタ情報を記述したファイルを「パッケージ文書」と言います。パッケージ文書はXMLで記述され、「.opf」の拡張子をもちます。
今回作成するEPUBはほぼ最小の情報のみで構成していますが、一般的な電子書籍ではパッケージ文書の「metadata要素」に出版物の著者や発行元などを記述します。 またEPUBではパッケージ文書の「manifest要素」にEPUBを構成する全てのリソースのパスと一意のidを記述しなければなりません。またEPUBには通常複数のコンテンツ文書のリソースが含まれますが、これらのリソースは「spin要素」に読む順番に記述されます。
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" xml:lang="ja" version="3.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>読書会の記録</dc:title>
<dc:language>ja</dc:language>
<dc:identifier id="pub-id">jp-dogrun-blog-20120927</dc:identifier>
<meta property="dcterms:modified">2012-09-27T12:00:00Z</meta>
</metadata>
<manifest>
<item id="TOC" href="toc.xhtml" properties="nav" media-type="application/xhtml+xml"/>
<item id="chapter1" href="chapter1.xhtml" media-type="application/xhtml+xml"/>
<item id="chapter2" href="chapter2.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<spine page-progression-direction="ltr">
<itemref idref="chapter1" linear="yes"/>
<itemref idref="chapter2" linear="yes"/>
</spine>
</package>
ナビゲーション文書
ナビゲーション文書は目次などを記録した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" lang="ja" xml:lang="ja">
<head>
<title>読書会の記録</title>
</head>
<body>
<nav xmlns:epub="http://www.idpf.org/2007/ops" epub:type="toc" id="toc">
<h1>目次</h1>
<ol>
<li><a href="chapter1.xhtml" id="chapter1">「マーケティング・リフレーミング」</a></li>
<li>
<a href="chapter2.xhtml" id="chapter2">「マーケティングリフレーミング」と共創性</a></li>
</ol>
</nav>
</body>
</html>
その他のファイル
EPUB 3には上記の出版物リソースの他に、「mimetype」と「META-INF/container.xml」が必要です。
「mimetype」は下記のようにファイルのメディアタイプが記述され、EPUBコンテナの先頭に無圧縮で配置する必要があります。
application/epub+zip
「container.xml」には前述のパッケージ文書のパスが記述されています。
<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" />
</rootfiles>
</container>
EPUBコンテナのパッケージ
これで一通りブログをEPUBとして書き出すために必要なファイルがそろいました。このファイルをzipでアーカイブすれば良いのですが、EPUBでは「mimetype」がコンテナの先頭に無圧縮で配置されている必要があり、そのためzipコマンドを2回にわけて実行することになります。これまで作成したファイルのあるディレクトリに移動して下記コマンドを実行してください( 以下macのターミナルを使った場合の例です)。
$ zip -0xq myblog.epub mimetype
$ zip -r myblog.epub * -x mimetype
この操作でパッケージされたEPUBファイルを下記にアップロードしています。iOSのiBooksやAndroidのHimawari Readerなどで読むことができます。
こちらにアクセス→ http://dogrun.jp/epub/myblog.epub
今回はEPUBがどのように構成されているか知るために特別なツールを使わずにEPUBを作成してみましたが、ミスなく全てのドキュメントを作成するのはかなり大変な作業です。さすがに電子書籍をつくる度にこれらの文書を手書きしていたのではあまりに時間がかかりすぎるため、通常はEPUBを生成する時は何らかの専用のツールを使うことになります。
そこで次回は専用のツールを使ってEPUBをつくる方法にトライしてみたいと思います。
参考
◆いいパブッ!!- よくわかるEPUB 3
→ http://www.slideshare.net/lost_and_found/iipabu-11542571
◆EPUB3標準マニュアル(押山隆 著)
------------------------------------------
◆このコラムのほかの回を読む
第1回 本の価値から電子書籍を想像する
第2回 理解をナビゲーションする電子書籍デザイン
第3回 電子書籍と読書体験のクラウド化
第4回 EPUB 3
第5回「本」だけではない電子書籍活用アイデア
第6回 ブログから電子書籍を作るには(1)
第7回 ブログから電子書籍を作るには(2) (最終回)
Posted by eしずおかコラム at 12:00