ひまつぶし雑記帖

EPUB3作成webサービス

2012/10/8 [10:26:13] (月) 天気

テキストファイルと表紙画像ファイルをアップロードするだけでEPUB3を作成するページを作った。
https://books.doncha.net/epub/
ので、例によって忘れないうちにメモ
(ちなみに。作成したEPUB3、縦書き表示のスクリーンショット →  kindle KDPの縦書き表示

EPUB3といっても、ファイルのほとんどはxhtmlとcssなので、HTMLをエディタで直に書ける程度のスキルがあればそれでOK。書誌情報の設定ファイルなどもXMLのようなもので、ひな形ひとつあれば、どこにどんな情報を入れるのか見当がつくので上書きすればOK。最後にそれらを所定のディレクトリにおさめて、zipで梱包するだけ。
以上、エディタとzipするためのアプリがひとつあれば手作業でできる。

上記のことをperl を使って、サイトにCGIを組み込んでみた。といっても難しいことはなく手順どおりにやるだけだった。
EPUB3ファイルのディレクトリ構成やファイルのひな形には、FUSEeというフリーウエアが出力する .epub ファイルを参考にした。

ファイル、ディレクトリ構成

mimetype
META-INF/container.xml
OEBPS/content.opf
OEBPS/text/nav.xhtml
OEBPS/text/cover.xhtml
OEBPS/text/contents001.xhtml
OEBPS/images/cover_hyo1.jpg
OEBPS/images/hyo1.jpg
OEBPS/style/default.css
OEBPS/style/nav.css

上記で必須なのが META-INF/container.xml

ここで指定されている OEBPS/content.opf が基本設定ファイルとなってる

content.opf
これに実体ファイルのありかやID名など、いろいろなお約束が書かれている。大事なファイル。

・実体ファイルとそれに対するIDの組み合わせの羅列、のようなもので、これが基準となるファイル。
・identifierのBookIDは一意の文字列。なので、URLとDBに登録した連番と組み合わせて作った。
([10/11 17:55:46] 訂正。連番ではなく、IPアドレスとperlのtimeを組み合わせた物に変更した)
大雑把に。実体ファイルに ID をつけて、ID名で指定していく。IDと実体ファイルは1対1。複数IDに同じファイルを指定するとValidatorにひっかかる。
・metadata で本の定義。
・manifest で使うすべてのファイルのidなどを定義。
・spine は読む順番に上から下へ並べる。linear=yes が順番に組み込む linear=noは順番には出ない(カバーなど)
・guide はどうやらEPUB2までの下位互換、らしい。

OEBPS/text/contents001.xhtml
本文ファイル(名前は content.opf に指定。特に決まった命名規則はない)
ビューワーによって一度に読み込めるファイルサイズの上限がある、という話なので、わたしのスクリプトでは「章立て」ごとにファイルを分割した。contents001.xhtml contents002.xhtml contents003.xhtmlなどなど。

OEBPS/text/nav.xhtml
目次ファイル。本文ファイルの見出し h タグにidをふってあるので、それを ol タグでリストにしたhtmlファイル。本文ファイルと整合性チェックが入るのできちんと合わせる必要がある。
[11/16 12:24:12] 追記。kindleで目次を設定するには
OEBPS/toc.ncx というファイルが必要。guideにtype tocを指定して、spineにhtml版目次を指定する必要がある。

[12/19 14:56:52] 追記。kindleの目次について整理した → https://t2aki.doncha.net/?id=1355879465

OEBPS/text/cover.xhtml
表紙ファイル。img タグで表紙画像を指定しているだけのhtmlファイル。content.opf のspineの項目 coverの linearをno にすることで、本を開いたときに表紙を表示しないようにしてある。

OEBPS/style/
OEBPS/images/
の2つのディレクトリには各々スタイルシートと画像ファイルが入っているだけ。スタイルシートは  https://www.epubcafe.jp/egls/kusamakura で公開してくれている basic_vertical.css を基本にして使わせてもらった(ありがとうございます)
HTMLにタグづけしてスタイルシートを頑張れば、凝ったレイアウト・デザインも可能。とりあえず今回は h タグと p タグをつけ足しただけの単純な本文HTMLファイル。

mimetype は application/epub+zip と一行、ファイルタイプが書かれたファイル

以上のファイルを揃えてzipで梱包すれば EPUB3 ファイルのできあがり。
・mimetype はzipファイルの中で先頭に置く必要がある。
・mimetype は圧縮してはいけない。
この2点だけ注意。
perl の Archive::Zip

これで mimetype を圧縮せずにまず先頭に置いて、あとは適当な順番で addFile する。

ウチのようなテキトーなサイトではなくて、EPUB3の仕様などは以下のサイトを参照にしましょう。
https://tutorial.epubcafe.jp
https://blog.imagedrive.jp/epub3

と、作ってみた感想。
普通にHTML書けばそれでイケる。ので、作って公開したのはいいけど、他のパッケージソフトや、フリーウエアで使い勝手の良いものを見つけて、凝ったレイアウトデザインを目指したほうがいいような気がする。
とりあえず、ウチの場合、テキストファイルと画像ファイルだけ流し込めばそれっぽく電子書籍にはなるので、電子書籍って、EPUBってこんな感じなのか、という程度の使い方でよろしくお願いします。

ちなみに、実際に
https://books.doncha.net/epub/
↑このページに本文テキストと表紙用画像を流し込んで作ったEPUB3で、amazon、kindleストアに並べて販売中!
「doncha.net のkinle本たち」

[2013/02/04 14:21:35] 追記。
EPUB3をkindleのKDP登録に使う場合、少しクセがある。そのあたり、検索されているようなので、この雑記帖に散らかしてある縦書きやkindleの目次についてなどへのリンクをまとめてみた。
「kindle EPUB3作成のまとめ1」

 

»電子書籍制作代行についてはこちら

【電子書籍発売中】

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ため池

[2025/03/23 18:35]
@k6s8@misskey.io @k6s8@misskey.io わたしは三波春夫が狂ったように意味のない歌詞で叫んでた大阪万博世代で、月の石とか目玉商品があったと思うんですけど、今どきは万博に限らず、いわゆる国を上げてのイベント ...

[2025/03/23 18:15]
【速報】万博に行きたいとは思わない74%
https://www.47news.jp/12345446.html
>大阪・関西万博に「行きたいとは思わない」が74.8%で、「行きたいと思う」の24.6%を上回った。

「上回った」とかいうレベルじゃないんだけどwwww ...

[2025/03/23 18:09]
ゴージャスでリッチ、すげー作り込んだページも、アクセスして観てもらうことが大前提。
表示に時間がかかって「戻る」されたら元も子もない。そのJavascript本当に必要?cookie食わせてDBと照合してる暇があったらとっ ...

@t2aki@tokoroten.doncha.net

検索
<<2025/3>>
      1
2345678
9101112131415
16171819202122
23242526272829
3031

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版