at posts/single.html

Kindle Paperwhite を買ったので本棚の本を電子化することにした (3)

Kindle Paperwhite で文庫本を読みだしてから一ヶ月。Kindleへ送信した文庫本(6冊)を読み終えたので、残っているファイルを変換する。今回は KindleStrip を使って mobi ファイルのサイズを削減する話。

これまでのおさらい

環境はWindows。

  • 本を BOOKSCAN に送り、PDFに変換してもらう
  • ChainLP を使って PDF の傾き補正・余白削除を実施して、 mobi ファイルで出力
  • SendTo Kindleを使って パーソナルドキュメント経由で Kindle Paperwhite へ mobi ファイルを送る

ところが、出来上がった mobi ファイルが 50MB を超えていて、パーソナルドキュメント経由で送れない。

PDFの二倍くらいの容量になってしまうのが欠点か。KindleStripを使えばPDFと同程度にできるみたいなので、あとでやってみるか。

しかたがないので、KindleStripを使ってmobiファイルを削減する。

KindleStripによるmobiファイルの削減

変換した mobi ファイルには元データが残ってしまうらしく、サイズが倍になってしまう。この元データを削除するスクリプトが KindleStrip 。Kindle Paperwhite向け自炊レシピ - 道具眼日誌:古田-私的記録の説明が詳しい。

KindleStrip.pyというツールなのですが、Pythonというスクリプト言語でプログラムされており、Windowsの場合はまずそちらをインストールしなければなりません。こちらからダウンロードします。32bitの人は「Windows Installer」、64bitの人は「Windows X86-64 Installer」でいいでしょう。自分のOSがどちらかわからない人は前者でOKです。ダウンロードしてダブルクリックすれば普通にインストーラーが起動するので、そのまま最後までインストールします。

WindowsマシンなのでPythonはインストールされていない。別にダウンロードしていたかんたん PDF ダイエットに、実行形式の KindleStrip.exe が付属していたので、これを使うことにした。使い方はこのとおり。

KindleStrip.exe [元ファイル名] [出力ファイル名]

これだと1ファイルずつ処理するのが面倒。複数ファイルを選択し、右クリックで一気に変換したかったので、スクリプトを作ることにした。

  • バッチファイルで作る → 引数の処理が記号まみれで面倒
  • PowerStriptで作る → Windows8の初期設定では、スタートメニューに表示すらされない!調べてもあまり情報が出てこなかった(サーバ管理の情報が多い)のでやめた。

結局、RubyInstaller for WindowsでWindowsにRubyをインストールし、Rubyスクリプトで書くことにした。

Sublime Text2

このスクリプトを kindlestrip.rbとして、kindlestrip.exe と同じフォルダに置く。変換したいファイルを引数で渡してスクリプトを起動すると、元のmobiファイルをorgディレクトリにコピーし、kindlestrip.exeで削減したmobiファイルを生成する。

このままでは .rb ファイルにD&Dしてもrubyが起動しないので、ドラッグ&ドロップでスクリプトファイルを実行できるようにする方法 | TipsZoneを参考に、レジストリを修正。さらにkindlestrip.rbへのショートカットをSendToに入れておけば、便利。

  • エクスプローラで複数のmobiファイルを選択
  • 右クリックで、送る → kindlestrip.rb (へのショートカット) を選択
  • mobiファイルのサイズがまとめて削減

結局、Rubyをインストールし、さらにレジストリを追加するなど、ずいぶん回り道をした。普通にバッチファイルで書けば良かったかな。

ちなみに、レジストリに追加したくなければ、kindlestrip.batを作成してSendToに代わりに登録すればいい。 .bat → .rb → .exe という構成。

@ECHO OFF
"ruby.exe" "%~dp0kindlestrip.rb" %*
pause

ファイルサイズ

文庫本(ローマ人の物語14巻)での結果。

  • BOOKSCANが生成したPDF … 51MB
  • ChainLPで変換したmobi … 54MB
  • KindleStripで削減したmobi … 27MB

ぴったり50%削減。

追伸

WindowsマシンでRubyスクリプトを書くためにインストールしたSublime Text 2| Mnemoniqs Web Designer Blogというエディタがいい感じだったので、Macにもインストールした。この話は別に書くかも。

関連する日記