epub制作に必須のArchive Zipのメモ

電子書籍作成ページの依頼があって久しぶりにスクリプトを眺めてみた。
(電子書籍の制作ではなくて、電子書籍を作成するページの作成)
エラーのないepubを作るのは手順の塊…というか手順だけなので面倒くさいんだけど難しいスクリプトでもない。
ユーザーの入力をどこまで自由にするのか、ページ移動はどうするのか、エラー処理は、ブラウザ対応は、などなどepub作成以外の部分で考えなきゃいけないことがいろいろあるのはwebだからしかたがないところ。
Archive::Zipのメモ1
てなことを考えながら見てたら、epubをパッケージするzipのモジュール、Archive::Zipでエラー。
Can’t call method "desiredCompressionLevel" on an undefined value at ...../Archive/Zip/Archive.pm line 249.
他のスクリプトでは問題なく使えているモジュールで原因がわからないし、該当箇所を見てもよくわからない。
$zip->addFile(filename,newfilename)
zipにファイルを追加していくところでエラーになってしまう。いろいろ試行錯誤。
結果。追加するファイルが見当たらない、pathが違ってたというだけのことだった。コンセントが抜けてますよレベルの話だった。
…でもなあ、このエラーメッセージじゃわからん。とほほ。
Archive::Zipのメモ2
前々からArchive::Zipで圧縮したらそれをファイルの書き出すのではなくて、標準出力にそのまま吐き出せればいいのにと思っていて、ついでなので調べてみたら、当たり前のように用意されていた。おのれの不勉強に愕然。そりゃそうだよなあ。
$out = *STODOUT;
$zip->writeToFileHandle($out,0);
writeToFileHandleのファイルハンドルに標準出力を指定してやればOKだった。
これで正常なzipファイルを出力することができた。
久しぶりにこの手のことでグーグル様詣で。以前Archive::Zip について調べた時には見かけなかったepubがらみのQ&Aなんかが検索でひっかかってきてちょっとびっくり。
電子書籍を作る側は充実してきてるんだなあ、と変なところで実感した。
[更新]2015-11-14 07:55:23
音声付きのEPUB電子書籍

詳しくないのでテキトーなことを言っちゃうんだけど。
誰もが情報にアクセスできる、「本を読める」ことが大切。
電子書籍の音声読み上げ機能はたぶん必須となる。
文字サイズやフォント、コントラストや白黒反転などが調整できて読みやすい環境が手に入る電子書籍で、さらにもう一歩進むべきところが音声読み上げだろうという話。
iPad(iOS)あたりはTTS(テキストツースピーチというらしい)、端末に表示しているテキストを読み上げる機能がすでにあって、DRMがかかってなければEPUB電子書籍も読み上げてくれる。
実際に某社で雑談の中で見せてもらった…けど、ぶっちゃけ今日時点、とても使ってもらえるようなシロモノじゃなかった。
「ほら、ハードウェアでもうできるんですよ」と読み上げさせてた本人すら、ページをどうやって送るのかどこを読ませるのか右往左往で満足に操作できない。見てるこちらはもっと意味不明で、これを「できてる」と言っちゃいかんだろと内心思ってた。
たとえば視力・視覚に障害のあるひとにこれを使えば読めますよ、と言ったところでたぶん無理。
某社の音声合成ソフトを見せてもらった。
EPUBを読み込んで、音声をつけたEPUBを作成するというソフト。EPUBの本文であるHTMLを解析して、段落単位(たぶんPタグなどブロック単位)やフレーズ単位(たぶん、句読点や単語を見てる)で、読み上げ音声をつけて、なおかつ、読み上げている部分をハイライト表示する。
(EPUB専用ということではなく、EPUBモードがあるということで、テキストなら何でも読み上げる)
音声をつけて書き出されたEPUB電子書籍は担当者が清々しく臆面もなく自慢してたように、読み上げのイントネーションがかなりまとも。辞書機能もしっかりしてるようで読み間違いはほとんどなかった、かな(固有名詞はさすがに難しいけど辞書登録や編集機能があるので手をかければ問題はない)自慢するだけのことはある。
ハードウエアによる(OSレベルでの)音声読み上げと違って、電子書籍の中だけのことなので、ページめくりやページジャンプなど音声なしのEPUBを読むのとまったく同じ操作で違和感がなくスムーズ。
これなら十分使ってもらえるレベルだなあと素直に脱帽、というか感心した。
EPUBファイルの中がどうなってるのか興味津々。
ファイルをもらってないので中を見ることはできなかったけど、音声を同期させるため(読んでいるところと音をあわせるため)のSMILファイルを自動生成しているらしい。今までこれを手作業なりでやるしかなかったらしく、その作業を知ってるひとに言わせると、これだけでもぜひ欲しいということだった。
商売的に。
端末による読み上げのためにはEPUBファイルにDRMがかけられないけど、音声を組み込んだEPUBならDRMがかけられる、かな(憶測)
対応している端末次第だけど、DRMがかけることができれば著者・権利者の理解も得やすい、ていうかDRM前提の契約になってることが多いらしいし。
このあたり、まるで不勉強だし、ちょっと調べものしてみるかなあ。
[2015/03/05 10:57:00]
というわけで、EPUB3のmedia overlaysを利用した音声付き電子書籍を実際に作成した。
音声合成は
mac
システムの音声Otoyaくん Kyokoさんを使用
windows
SofTalkや棒読みちゃんでAquest社の音声を使用
作成手順や、作った音声付き電子書籍については以下のページ。
上記で作った音声付き電子書籍一覧
[更新]2026-02-01 11:49:14
EPUB3の小ネタ:1行中の一部に2行押し込む

kindleで翻訳モノを読んでいたら、訳注が出てきた。
文中の単語の直後にカッコで囲まれて、訳注が半分のフォントサイズで2行表示(いわゆる割り注)されていた。どうやってんだろうとちょっとパズルしてみたところ、使えるかもしれないのでメモ。
訳注表示はこんな感じ。kindle previewer HDX8.9

Pタグの中の訳注部分をspanタグでくるんで、
・display:inline-block;
・font-size:0.5em;
・height:26em;(文字数で2行になるようにテキトーに)
・width:1.5em(センター合わせのためには要調整)
・line-height:1;
・text-indent:0;
元の翻訳モノも同じだけど、文字サイズを大きくしたり小さくしたりすると改行されてしまったりする。
こんな感じ。前の単語と泣き別れする。kindle previewer HDX

kindle Paper Whiteのデフォルト文字サイズだとそれっぽく。センターがずれてるので調整が必要。

MacのiBooksでもなんとか見られる感じ。これもセンターがずれてるので調整が必要。

泣き別れに納得してもらえれば、ギリギリ使いものになるかもしれない、かなあ。
きれいな方法があったらぜひ教えてください。
[更新]2014-08-23 08:29:59
紙にも電子にも使える元データ

InDesignのデータを預かってみて、現状まだInDesignが吐き出すEPUB3はそのまま使えないなあとしみじみ。
・position absolute
リフローで位置指定を入れてもなあ。いや気持ちはわかるけど(あれ?これってそもそもエラーになるような気がする)
・font-size:1.115em
小数点以下3桁指定してもなあ。見た目かわらんだろ。
・color:#000000
本来これは問題じゃないんだけど、kindleのクオリティチェックに引っかかる。
などなど微妙というか意味不明の指定が、CharOverrideやidGenPageitemといったInDesignがつけるクラスで指定されている。この手のスタイルを殺してまわって、Epubcheckでエラーのないことを確認、ibooksやkindle previewerで表示させてみて、原本と見比べてみて、見た目の違いすぎるところをそれっぽく見えるように新たにスタイルを指定していく。
また、fontも埋め込まれる。リーダーすべてが対応してればいいんだろうけど(権利関係も含めて)危険な匂いがするので外しておく。
今年の4月に『電子書籍で紙の再現は無理』http://t2aki.doncha.net/?id=1397210480
「InDesignの組版データをもらえばそのままEPUB3ができるんですよね」とふられて腰が抜ける。
なんてことを書いたばかり。
ひとつのタイトルを出版する形は、紙印刷だけではなく電子書籍もある。
以前、某セミナーで小学館の社長・相賀氏が話していたけど。
印刷用のデータはそのまま使えなくて電子書籍で出すにはそれようのデータを各々作る必要があってそこのコストが馬鹿にならない。印刷にも電子書籍にも回せる元のデータ管理が必要。
てのはまさにその通り(その一元管理を出版デジタル機構でやるという話の流れだったかな)
底辺エロ本出版社の頃。
発行した雑誌や本を会社でまとめて保存しているわけでもなく。編集部単位で保存、または担当が自宅で保存ぐらいなものだった。増刊などで合本(複数雑誌のグラビアの寄せ集めなど)を作る時は印刷会社に連絡して版、フィルムを手配…本の管理は外部、印刷会社まかせだった。
版元の認識として、本の元データは印刷データ(データというかフィルムだもんなあ)
時代がDTPになっても同じく、InDesignやクォークが元データでそれは印刷直結データ。
元データ=テキストデータということで管理されるようになればいろいろありがたいんだけどねえ。
[更新]2026-02-01 11:52:18
kindle販売実績これまでのあらすじ

常にこれから始めるひとがいて、いつも繰り返される話題のひとつ。
「ところで、売れるの?」
というやつ。
電子書籍を始めよういうひとたちと話す機会があるので、自分の整理のためにもメモ。
(ウチは2012年10月からkindleで販売を始めていて3年弱ぐらいになる)
ウヒョー売れてるぜ!…てなことはない。
でもありがたいことに1本も売れない月はなくて、毎月売上はある。どこで見つけてくれるのか管理画面で経路までわからないけど、AmazonのアフィリエイトやWEBサービスはインターネット上を広くあまねく覆っているのでタイトルの露出は見込める。販売力は強力強欲強烈で信用できる。

本数ベースだとこんな感じ
(KOLLというのはレンタル/標準というのが有料販売)
無料キャンペーンが60%ほどを占める(※今は無料キャンペーンをやっていない)
無料キャンペーンは、kindleでの販売を始めた最初の頃3タイトルでやったものと、猫写真集(無料キャンペーンの本数のほとんどは猫写真集)
無料で出せばそれなりにダウンロードされるのは確か。
ただ、先日の小説同人誌のひとたちとの電子書籍雑談会でも話題のひとつなったように、有料のものを無料にするのは変だし無料なら無料配布のものを出す、のがスッキリしていてわかりやすい(有料だったものを無料で配るのは有料で買ってくれたひとに失礼です、というお話も)
ちなみに、無料キャンペーンをやればその後そのタイトルは売れるという話も見るけど、ウチの場合無料キャンペーンと有料販売の有意な関連は見られない。

タイトル別(金額ベース)はこんな感じ
今のところは猫写真集が67%ほど占める。Amazonの月替わり公式キャンペーンに取り上げられたのが大きい。
ただ、それだけではなくて、平常時も猫写真集は確実に売れている。仕事で関わっている版元も同じくというか文芸は難しく実用書や啓発本の方が出るという話を聞く。
これは書籍のランキングなどでもやっぱり同じで、
http://www.tohan.jp/cat2/year/2013_1/ (トーハン)
http://www.nippan.co.jp/ranking/annual/ (日販)
トーハン、日販のベストセラーを眺めても小説文芸系は村上春樹など一部。
狙ってジャンルを選べばベストセラーランキングに出ることも可能だと思う。個人出版の電子書籍だからとか版元商業誌だからとか、関係ないところだろう。
作るためのネタ、小ネタは持ってるけど、売るためのネタは持ってなくて申し訳なく思います。はい。
[更新]2026-02-01 11:52:37

