読者です 読者をやめる 読者になる 読者になる

Kindle Paperwhite向けに自炊pdfを最適化する

id:halfrackKindle Paperwhiteのタワーを作っていたので、Kindle Paperwhite向け自炊pdfの最適化をしてみました。
f:id:halfrack:20121011205048j:image:w200

Kindle Paperwhite向けの自炊pdf最適化は、

  • 余白を適切に削除すること
  • 画像を最適なサイズである横658ドット x 縦905ドットにすること

の2つが大事です。特に後者が重要で、デバイスごとに最適なサイズにすることでpixel by pixelで表示することができます。ちなみに、これまでのKindleでは横560ドット x 縦735ドットが最適でした*1

調査には1ピクセルごとに線を入れたpdfを作成して行いました。このpdfでは、ページごとに画像サイズを1ピクセルずつ変えていて、最適な解像度ではない場合、綺麗に一様な模様にならず、すぐに分かります。これでちょっとずつ探りながら最適なサイズを探すわけです。地道ですね。実際に試したい場合は、使ったpdfをkindle_paperwhite_resolution.pdfに置きましたのでどうぞ。作成スクリプトは https://gist.github.com/3892964 にあります。

Kindle Paperwhite向けに最適化されたのがどれぐらい綺麗かというと、
f:id:stanaka:20121016002842j:image:w200 f:id:stanaka:20121016002841j:image:w200
ぐらい違います。いずれも元pdfは同じで、左がKindle4(最適化済)、右がKindle Paperwhite(最適化済)です。「聖職」に注目すると、文字の細かい線がKindle Paperwhiteのほうがはっきりしていますね。

次は最適化するためのツールが欲しい、ということで、Kindle向けのpdf最適化を行うツールの中から Kindlizer( https://github.com/tdtds/kindlizer )からforkして、https://github.com/stanaka/kindlizer で手を入れてKindle Paperwhite向けにできるようにしました。ただただしさん、ありがとうございます!

Kindlizerの解説や詳しい使い方は、 http://d.hatena.ne.jp/kamosawa/20111116 にあります。
Macでは依存ツールはbrewでざくざく入ります。

brew install sam2p
brew install imagemagick
brew install pdftk
brew install poppler --with-glib

popplerはオプション無しではビルドに失敗した(OSX 10.7.4, XCode 4.5.1)のですが、"--with-glib"をつけたら成功しました。rakeは既に入っていますよね。当然です。

fork版はオリジナルからは以下の変更を加えています。

  • Rakefileをハードコードされていた元pdf(SRC)やマージン(TOP, BOTTOM, LEFT, RIGHT)、サイズ(SIZE)、階調(LEVEL)を引数で指定可能にした
  • 元pdfのファイル名が空白などを含んでいても処理可能にした
  • sample.pdf → sample.out.pdf と変更されていたファイル名のout部分を変更可能にした(POSTFIX)
  • i文庫向けに"[著者名] タイトル.pdf"というルールのファイル名を"タイトル.out.pdf"にしつつ、AUTHORのメタデータを書き換えるようなオプション(UPDATE_METADATA)を新設した

これを使って、Kindle Paperwhite向けの最適化を実行するには、元ファイルをsample.pdfとして用意して、

rake SIZE="658x905"

と一発でいけます。

複数ファイルを対象としたい( & 美白化したい & マージンの調整をしたい & 著者名をメタデータに入れたい)時も

for i in ~/book/*;do rake SRC=$i LEVEL='0%,93%,0.7' TOP=100 UPDATE_METADATA=1 POSTFIX=kindle; rake clean SRC=$i; done

ワンライナーで一発でいけます。

では、快適なKindle Paperwhiteライフを!

Kindle Paperwhite

Kindle Paperwhite


Kindle Paperwhite 3G

Kindle Paperwhite 3G

追記(10/16 9:52)

コメントでjpegをzipしたものなら、リサイズもまともですよ!ということなので、Kindle4で試してみましたが、コントラストの調整ができなくて、ちょっと厳しそう。ページ数が出ないのもナビゲーション的に厳しいですね。あと、Paperwhiteではjpegのzipファイルは認識してくれなかったので、サポート外になったのかもしれません。(同じzipでKindle4では見れました)
f:id:stanaka:20121016095141j:image:w200

追記 2(10/16 10:17)

Kindle Paperwhiteでのスクリーンショットの撮り方は、

All you have to do to take a screenshot is tap the upper left corner and lower right corner at the same time. Or you can tap the upper right corner and lower left corner at the same time.

http://blog.the-ebook-reader.com/2012/10/08/kindle-paperwhite-tips-how-to-take-screenshots-and-remove-recommended-ebooks/

ということで、右上と左下を同時にタップ、もしくは左上と右下を同時にタップで、ルートディレクトリにPNGファイルが生成されます。

*1:参考: http://non-non-chan.blogspot.jp/2010/10/kindle-3-2.html