ジャンル不定の日記です。

Kindleパーソナル・ドキュメントでコミックできたー

朝からハマってたが、やっと右から左のコミックでKindleパーソナル・ドキュメントできましたー。

.mobiを作ってアップするんだが、
使うアプリは、calibreと、kindlegenってAmazon公式のアプリ使った。


まず、calibreで読み込むデータの用意だが、JPEGをまとめたZIPなら拡張子を.cbzに変更するだけで読み込める。
パーソナル・ドキュメントには50MBまでしか送信できず、kindlegenを使うとファイルサイズが倍増するので画像サイズはかなり小さくする必要があるが、mogrifyコマンドを使うと複数のJPEGを一括でリサイズできる。
calibreはPDFも読み込め、convertコマンドで複数のJPEGをまとめてPDF作ることもできるが、
PDF → EPUB → MOBI
だとうまく行かなかった。

PDFの方が楽ではあるが、
CBZから変換したほうがファイルサイズが小さくなりそうでもあるので、CBZの方が良さそう。

参考までに、convertコマンドでPDFなら、
convert -resize 50% *.jpg xxx.pdf
ってすれば、カレントディレクトリの全JPGを50%にリサイズしてPDFにまとめられる。
-resizeの値は、%か、横x縦と、x区切りでpx指定。
縦横どちらか省略すると指定した方に合わせて比率維持。
convertはUbuntuならパッケージマネージャから graphicsmagick-imagemagick-compat を入れれば使える。
imagemagickでもいい。

mogrifyコマンドもconvertコマンドが利用できる環境なら利用できると思われる。
mogrifyコマンドはconvertと違い、元の画像ファイルが上書き更新される。
更新されちゃうんで、やる前にフォルダごとバックアップしておこう。
mogrify -resize 50% *.jpg
ってすれば、ファイル名そのままでリサイズできる。
JPEGのリサイズをしたら、ZIPにまとめて拡張子を.cbzに変更。

画像サイズの指定は、複数の書籍データで統一したほうがいいだろうから、
%指定じゃなくてx800とか600xとか縦横どちらかのpx指定がいいんじゃないかと思う。
kindlegenで.mobiを生成する際に、元のデータまで内包されてしまうようで、ファイルサイズは倍以上になる。
PDFやCBZにした時点で25MBあったら完全にアウト。


次はPDFやCBZをcalibreで読み込み、書籍情報の入力。
CBZから読み込む場合は、入力オプションの設定で出力フォーマットが初期状態でpngになっているので、jpgにしないとファイルサイズが増えちゃうと思われる。
市販書籍のデータなら、ISBNを入力して検索機能を使えば自動で入力終わる。


書籍情報の入力が終わったら、本を変換でEPUBに変換する。

EPUBに変換したら、
書籍の調整 → 書籍の分解
でバラす。
EPUBファイルは画像とテキストをZIPでまとめたファイルで拡張子が違うだけなんで、calibre使わなくてもZIP解凍用のツールでバラすこともできる。

バラしたら、
content.opf
とか、拡張子.otfのファイルがあるが、XMLファイルなんでテキストエディタ等で開いて編集する。

<metadata>内に、
<meta name="fixed-layout" content="true"/>
<meta name="original-resolution" content="550x800"/>
<meta name="RegionMagnification" content="true"/>
<meta name="primary-writing-mode" content="horizontal-rl"/>
<meta name="book-type" content="comic"/>
こんな感じでメタデータを書く。
特に重要なのが"primary-writing-mode"で、"horizontal-rl"にすると右から左になる。
"fixed-layout"付けないと多分上下に余白ができちゃう。
"RegionMagnification"は多分ダブルタップのズーム機能。
"original-resolution"は必須項目みたいなんでつけた。大体の画像サイズ。
"book-type"は"comic"にするとコミックに必要のない機能がリーダーで使われない。
って感じぽい。

修正したら、書籍の再構築でEPUBが完成。


EPUB → MOBI
は、kindlegenで、
./kindlegen filename.epub -c0 -verbose -locale ja
こんな感じ。
-verboseは画面出力だけなんで付けなくてもいい。
-c0で無圧縮。圧縮してもサイズ変わらなそう。

完成した.mobiが50MBを超えていたらアウトなんで、そしたら画像サイズをさらに小さくしてやりなおし。