2010/04/15

PDF を Kindle2 へ最適化するスクリプト kdconv を公開しました

Kindle2 は、視認性がよく、持ち運びにも適したサイズで、大変便利なデバイスです。特に PDF を閲覧できる点が気に入っています。

Kindle2 は、指定されたファイルを画面いっぱいに拡大し、画面を有効活用して表示しようと試みます。このため小さな画面を大きく活用できます。

しかし、例えば書籍をスキャナで読み込み、JPEG化したファイルから生成したPDFの場合、この機能が却ってアダとなってしまいます。ファイルの拡大により、フォントが崩れてしまうのです。

そこで、JPEGなどのメージデータで構成されたPDFをKindle2で読みやすいサイズへ変換するためのスクリプト、kdconv を作成しました。github から取得可能です。
このスクリプトの特徴は以下の通りです。
  • Kindle がPDFのサイズを変更しないようにデータを加工します
  • Kindle で読みやすくするため文字を太くします
  • 元ファイルのイメージに含まれている余白を削り、本文を大きくすることができます
  • 著者名を埋め込み、ファイル一覧画面で Author を表示させることができます
  • Kindle へ生成ファイルを自動転送したり、Eject させることができます
  • KindleDX に適したサイズへ変換することも可能です(KindleDXを持っていない為、未検証です)
  • 副作用としてファイルサイズが縮小されるため、より多くのファイルを Kindle へ転送することができる様になります
例えば、自分でスキャンしJPEG化した『機動戦士ガンダムUC 1 ユニコーンの日』(福井晴敏/著)の48ページ目をKindleで表示させた結果で比較してみます。

以下はスキャンしたファイルをそのまま Kindle2 へ転送し、表示させた状態のスクリーンショットです。右上隅200x200ドットを切り出しました。


 自動拡縮が行われてしまい、文字がかすれて読みにくなってしまいました。Kindle上の電子ペーパでは、更に視認性が悪く感じられます。

このファイルを一度 kdconv で変換すると、このような表示が得られるようになります。


自動拡縮が行われず、スキャンした通りの文字が表示されるようになりました。また文字が太くなっており、Kindle上での読みやすさが増しています。

さらに、kdconve へ、余白を削る為の -t オプションを指定してみました。



画面いっぱいまで本文が広がり、大きな文字でより視認性が増しました。

なお、kdconv を作成するにあたり、以下のサイトで公開されている情報を参考にさせていただきました。
特に、
  • 外周に点を打つテクニック
  • Kindle2 に適した画像サイズ
  • 文字を太くして視認性を高める方法
  • Kindle2に同名のファイルをコピーした場合、再起動しなければメタデータが反映されないこと
  • Kindle2でメタデータを反映させるには、PDFのバージョンが1.4以上でなければならないこと(MacOS の Quartz はPDF 1.3で生成するので、メタデータが反映されない)
などの情報には大変助けられました。心から感謝いたします。

ぜひ、kdconv を活用し、Kindle ライフを楽しんでください。

2 件のコメント:

  1. Linux上でkdconvを使わせていただいています。
    このスクリプトは便利で、ありがとうございます。

    ただ一点バグがというより、pdftkの仕様があります。pdftkは日本語ファイル名を受け付けないため、一時的に適当なファイル名のoutputを作ってやった後、mvコマンドで日本語ファイル名に移動しています。(たぶんMac OS Xでは再現しない)

    もしよければこの内容もkdconvに取り込んでいただけると幸いです。
    具体的な内容が分からないようでしたら、パッチを適当に作りますがいかがですか?

    返信削除
  2. コメント、ならびに、ご利用いただき、どうも有難うございます。嬉しいです。

    私の環境でも再現しました。kdconvのバグです。ごめんなさい。
    v1.0.2で対策しました。もし、まだ不具合があるようでしたら、どうぞお気軽にコメントください。お手数おかけしました。

    返信削除