2009年10月24日土曜日

Kindleで日本語を表示できた(あくまで絵として)

先日入手したKindleは非常に楽しいおもちゃである.ただ,当初の目論見が外れたのは,PDFを正しく閲覧するのがそれほど簡単ではないということである.この記事では,PDFファイルをKindleで読める形式に変換する方法と,それを多少改良して,日本語を含んだPDFファイルをKindleで読める形式に変換する方法を説明する.

Amazon.comから割り振られたメールアドレスに,Kindleで読みたいPDFファイルを添付書類として送ると,Kindleで読めるファイル形式に変換してくれる.変換されたファイルが,Whispernetで自分のKindleに送り込まれる.ただし1MBあたり$0.99かかる.また,スパム防止のために,amazon.comのKindle専用のページで,PDFファイルを送るアドレスを指定しておく必要がある.

問題は,この変換がかなり機械的なもので,英文の箇所以外はほぼ使い物にならない.図は無視されるようだし,表組みも乱れる.そしてなにより,数式も保たれない.

■PDFを画像にしてしまい,電子ブックとしてKindleに転送
解決法の一つは,PDFを各ページごとの画像にしてしまうことである.実際にこれをやってくれるのが,PDFread 1.8.2である."PDFRead 1.8.2 released!"の,#1の記事の末尾に,ファイルが添付されている.Microsoft Windowsのユーザは, pdfread-1.8.2-Installer.zipをダウンロードし,解凍すると現れるインストーラを起動すればよい.

上記で使えるようになるPDFread 1.8.2 (Windows版)は,GUI形式でパラメタを設定できる.ファイルのフォーマットはprc, profileは prc-mobi-pとしてPDFを変換すると,Kindleで表示できるファイルが出来る.KindleをPCにUSBで接続すれば外付けドライブとして認識される.Kindleのdocumentsというフォルダに,PDFreadの出力ファイルをコピーして接続を解除すると,Home画面で今コピーしたファイルを確認できる.写真が上の手続きの例である:

From Kindle

いうまでもなく,いったん画像に変換してしまっているので,検索などは出来ない.

このPDFread(Windows版)は,GUIで指定されたパラメタからコマンドライン版(pdfread)のオプションを組み立て,このコマンドライン版(実はPythonスクリプト)を起動しているだけである.また,pdfreadを読んでみると,だいたい次の処理をしている:
  • GhostscriptでPDFファイルの各ページををpng画像に変換し,特定の書式のHTMLファイルを生成する
  • 上記のHTMLファイル(とpng画像)から,mobipocket形式のファイルを生成する

■日本語を含むPDFファイルを画像に変換して同じ事をする
つまり,PDFread内で起動されるGhostscriptが日本語を理解するもの(ghostscript-cjkなど)ならば,日本語のPDFファイルからでも,Kindleで読めるファイルが生成できるはずだ.

Windows版でやるなら,PDFreadのインストールされたフォルダ内のgsというフォルダを,日本語対応版のそれ(例えばcygwinに含まれるもの)と入れ替えれば良いのだと思う.実際には試していない.

コマンドライン版のpdfreadが,Windows版のPDFreadがインストールされたフォルダ内のsrcというフォルダに含まれている.あるいは,正式配布場所の「Welcome to PDFRead」からダウンロードできる.これをLinux環境で実行した.幾つか必要なパッケージがある.Ubuntuなら,次のようにして揃えられる:

sudo apt-get install pdftk python-imaging pngnq gs-common djvulibre-bin libtiff-tools unpaper optipng


さらに,gs-cjk-resource他,mapfileのcmap-adobe-japan1や日本語フォントttf-kochi-gothic, ttf-kochi-minchoも必要である.synapticsでインストールすれば良い.

Windows版の時を参考に,コマンドラインを指定する:
  • プロファイル(-p)がprc-mobi,
  • 出力ファイル(-f)prc

がポイント.
$ python ./pdfread.py -p prc-mobi -t "On 2-part of Tame kernel of quadratic fields" -a "Iwao KIMURA" -c "math" -f prc ~/DocMath/HokurikuNT2009May/handout.pdf
(実際には1行で)のようになる.


ただし,私が試したときにはHTMLファイルとpng画像しか生成されなかった.これらのファイルを再びWindows環境に(USBメモリで)移動して,GUI版のPDFreadに同梱のNRhtml2mobiというファイルでmobipocket形式に変換した.これは,mobiperlという,mobipocket形式のファイルを操作するためのperlスクリプト群の一つを,実行形式(exeファイル)に変換したもののようである.

出力結果が,次の写真である:
From Kindle

もう少し工夫の余地があると思うので,追求していくつもりである.

0 件のコメント: