文庫本のトリミング

[戻る]

はじめに

本 (主に文庫本) の増殖に耐えかね, とうとう先日 sony reader と scansnap を買いました. 俗に言う自炊をするためです. 早速, 何冊か裁断して scansnap で pdf 化して, sony reader で読んでみると字が細かすぎます. 余白が多いのです. 余白カット (トリミング) が必要ということが分かりました. 早速 PDFDiet というツールをダウンして使ってみたのですが, 読みやすさという観点からは改善されましたが美しさの観点からは不満です. ページ毎に字の大きさが異なったり, 端に書かれたものが真ん中に移動したりするのです. ChainLP というのも試したみましたが, 似たような感じです.

オリジナル画像
トリミング結果
やりたいこと

正直, これらのソフトのように凝った結果でなくてもかまいません. 全ページに渡って同じ縮尺率であること, 右寄りに書かれたものは右寄りに 左寄りに書かれたものは左寄りに配置されること, それらの制約の中できるだけ文字エリアを多く取りたいだけです.

プログラム

いろいろオプションをいじったのですが, どうしてもそういったことができません. そこで自分で作ってしまうことにしました. こちらです. コマンドラインのプログラムで動作は引数で渡します. パラメータは

作業の流れ

既に Scansnap 等で取り込み, スキャン抜けが無いことが確認された pdf ファイルがあることを前提に話を進めます. なお私は....

  1. PDFDiet を開いて, pdf ファイルを jpeg 化します. ここでは e:\org に出力されたとして話を進めます. もちろん最初から jpeg でスキャンしてもかまいません.
  2. コマンドラインから "jpegtrim -i e:\org -n" と打ち込みます. 各ページを検査して黒領域 (文字がある領域) が一番右から始まる画像, 一番上から始まる画像, 一番幅のある画像, 一番高さのある画像の 4 つのファイル名が出力されます.
  3. 表示された 4 つのファイルを開いてみて, ゴマ状のノイズを拾ったかどうかを確認します. -n オプションでノイズは除去しているはずですが, あまりにも大きいと文字かもしれないと除去しないためです. ノイズだった場合, ペイントブラシ等でノイズを白く消してしまいます.
  4. ノイズを手作業で消した場合, もう一度 2 から作業を行います.
  5. 一通りノイズを拾わなくなったら, "jpegtrim -i e:\org -o e:\out -z -n" と打ち込みます. e:\out に 4 つのファイル (重複していた場合それ以下) ができるので, 開いてみてそれぞれ右端から/上の端から文字領域が始まっているか, 幅いっぱい/高さいっぱい文字領域が使われているか確認します. ノイズを見落としていた場合はノイズを消してやり直してください.
  6. 5 の結果が満足ならば今度は "jpegtrim -i e:\org -o:e:\out -w -n" と打ち込みます. しばらくすると e:\out にトリミングされた画像ファイル群が出来上がります.
  7. 後は ChainLP で PDF 化します. 余計な処理はされたくないので, 縦横比チェックとかページ補正等のチェックははずします. ガンマ補正は必要に応じてやってもいいでしょう. なお, サイズは 584x754 だと Sony Reader 上で表示がおかしくなるときがありました. 560 x 750 がいいのではないでしょうか. またタイトルは Sony Reader 上の一覧に表示されますから書名を入れておくといいでしょう. 日本語は通ります.

このようにそこそこ満足するプログラムが出来た後で 知った情報ですが, ChainLP で「偏心補正」あたりをいじってもこういった問題は解決されるという話です. 確認はしていません.

裁断機

本当は裁断機も買いたかったのですが, 予算の都合上断念し, 手作りしました. 製作費は2000 円くらいです (木材含まず, ローラカッター含む).


2011.9