トップ 最新

ただのにっき

2011-12-05(月) [長年日記]

BOOKSCANから巨大なPDFが届いたので圧縮した

蔵書をBOOKSCAN送りにするのも今月で3回目、だいぶ書庫の本棚に隙間が見えてきた。

で、おれの場合、納品されたPDFはあらかじめ自宅でスキャンしておいた表紙を連結してメタ情報を追加してから補完しているのだけど、今回は2冊ほど、1GB近いサイズの巨大なPDFが含まれていて、メモリ不足でその手の作業ができない。どうやら、古くて紙が黄ばんだ本はスキャナがカラー原稿と認識してしまうためらしい。どっちも500ページ程度の文庫本なのにこれはたまらん。

というわけで、軽くグレースケール化してから再パッケージすることにした。ちなみに最近Koboを買ったかずひこから「pdfimages」というコマンドがあるよと教えてもらったので、今回からそれを使ってみることにした:

% mkdir ppm png pdf
% pdfimages `basename $PWD`.pdf ppm/tmp
% for f in ppm/*; do echo $f; convert $f -type Grayscale `echo $f|sed "s/ppm/png/g"`; done
% for f in png/*; do echo $f; sam2p -j:quiet -c:jpeg $f `echo $f|sed "s/png/pdf/g"`; done
% pdftk pdf/* cat output `basename $PWD`.out.pdf

これでファイルサイズが1/6くらいになった。モノクロにするともっと小さくなるけど、これはいちおう原本なのでそこまでは追い込まない。

ところで、pdftoppmはページ番号を1から始めるのに、なんでpdfimagesは0から始めるのかねぇ。併用しにくくて困るではないか。

Tags: ebook

Kindlizerもpdfimagesを使うようにしてみた

↑の状況をみて、Kindlizerでもpdftoppmの代わりにpdfimagesを使うようにしてみた。

pdfimagesはフルカラーのppmファイルを吐くし、おまけにファイル名の通し番号がゼロオリジンということもあって、環境に応じてpdftoppmと使い分けるという目論見はさっくりあきらめた。ということで、フルカラーの元画像をどのようにKindle向けに最適化するかという新たな課題が浮上する。というか前からそのあたりをもうちょっと詰めてみたかったのだけど。

まずは、ppm→pngにする段階で、グレースケールにするようにしてみた。何も考えないと255階調になるんだけど、-levelオプションを調整してみたり、16階調(KindleのE Inkがこれ)に変えてみたりしてもあまり最終的なサイズに変化がないので手詰まり。今日はこんなところで。

Tags: ebook kindle