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

Kindleパーソナル・ドキュメントサービスでコミックのまとめ

またKindleパーソナル・ドキュメントサービスにコミック送信してたんだが、
kindlegenで.mobi作るとサイズが倍になっちゃう問題の解消で作業手順変更したんで、まとめ。

まず、前回に続き、calibreでコミックの.mobi作れないか調べたが、
どうも、calibreで.mobi解析したり書きだすときに、<meta>が消されちゃうようで、どうにもならない感じ・・・
で、やはり前回と同じでepubを作って分解して<meta>を挿入して再構築。
kindlegenで.epubを.mobiに変換。
その後に、kindlestrip.pyってスクリプトを拾ってきて使う。
kindlestrip.pyは、kindlegenで作った.mobiから不要な元データを消してくれる。


使うもの。
  • mogrifyコマンド (graphicsmagick-imagemagick-compatかimagemagickをインストール)
  • calibre
  • kindlegen (Amazonから拾ってくる)
  • kindlestrip.py (ググって拾ってくる)


元データはjpgをまとめてzipにした圧縮ファイルだが、
kindleパーソナル・ドキュメントサービスには50MBまでしか送れず、総容量も5GBと少ないのでサイズを小さくしないといけない。
200ページ程度のグレースケールのコミックなら、縦800pxなら余裕で収まる。
zip内の画像をフォルダに解凍し、フォルダに移動して、
mogrify -resize 560x800 *.jpg
の様な感じで丁度いい感じのサイズを指定して小さくする。
この際、見開きのページが1枚のjpgになっているデータの場合、
calibreのコミック入力の設定で「右から左」にチェックしておくと自動で分割してくれるが、
その機能を使う場合は楯に合わせる必要があるので、
mogrify -resize x800 *.jpg
の様な感じで縦だけ指定してリサイズすると良いと思う。


画像のリサイズができたら、
calibreで読み込むための.cbzにする。
.cbzは画像ファイルをまとめて.zip化したものの拡張子が違うだけ。


calibreは、
設定→共有→書籍情報のダウンロード→Amazon.com
を「日本」に変更しておくとISBNからの書籍情報の検索を日本のAmazonからやってくれるので設定しておく。
.cbzを読み込んで、
「書籍を編集」でISBNを入力して「書籍情報をダウンロード」をすると書籍情報の自動入力ができる。

書籍情報の入力が終わったら、
「本を変換」で出力フォーマット「EPUB」で.epubを作る。
ファイルはClibreライブラリに出来上がる。
結構時間かかる。

.epubができたら、
書籍の調整→書籍の分解
を行い、
展開された.epub内の content.opfの<metadata>内に、
<meta name="fixed-layout" content="true"/>
<meta name="original-resolution" content="560x800"/>
<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ができるんで、kindlegenのフォルダにコピーする。
./kindlegen filename.epub -c0 -verbose -locale ja
こんな感じでkindlegenを使うと、.mobiが出来上がる。
パラメータ無しで実行するとヘルプが出ます。
出来上がった.mobiは不要な.epubを内包するので2倍程度になります。

kindlestrip.pyをkindlegenと同じフォルダに置いて
./kindlestrip.py filename.mobi filename.mobi
って感じで実行すると不要な.epubが削除されてサイズが半分に。
こちらもパラメータなしで実行するとヘルプが出ます。

この手順めんどいんで、
#!/bin/sh

./kindlegen "$1.epub" -c0 -verbose -locale ja
./kindlestrip.py "$1.mobi" "$1.mobi"
rm "$1.epub"
こんな感じのシェルスクリプトでまとめてやることにした。
これも同じフォルダに置いて、
./kindlegen filename
拡張子なしのファイル名を入力で.epubから.mobi作ってサイズ減らして元の.epub削除。


calibreもコマンドラインで使えるアプリみたいなんだが、GUIのが使いやすいかな。
メール送信機能も付いてるみたいなんで直接kindleに送れるみたいなんだが、
kindlegenで作った.mobiまた読み込ませるのもどうかと思うんで、Thunderbirdで送った。