自炊本をスマートフォンで読むための convertガナス

第1回 余白を削除する

2015.06.10

はじめに

このコーナーでは ScanSnap などでスキャンした自炊本をスマートフォンで良むため convert コマンドなどを使って文字を大きく表示させる方法について書いていきます。

余白を削除する

以下の画像ように余白のある本をスマートフォンで表示させると文字が小さくて読めません。そのため、余白を削除して文字を大きく表示させるようにします。

※以下はlatexで作成したファイルをpdfに変換したものですが、スキャナーで取り込んだ pdfと見たてて説明しています。

作業手順は以下の3つです。

  1. pdfを画像に変換する
  2. 画像から余白を削除する
  3. 余白削除した画像をpdfに変換する

具体的な処理を記述していきます。

  • pdfを画像に変換する

余白を削除する処理を行うため、pdf を画像に変換します。pdf を画像に変換するために pdftoppm コマンドを使います。

% pdftoppm sample.pdf aa
% ls
aa-1.ppm  aa-2.ppm  aa-3.ppm  aa-4.ppm
  • 画像から余白を削除する

余白を削除するため、ImageMagick の convert コマンドを使います。trim オプションを使用すると余白部分を削除した画像を生成します。

% convert -trim aa-1.ppm /tmp/2.ppm

余白を削除すると以下の表示になり、わりと読めるようになります。表示は「縦方向にフィット」するようにして下さい。

ならべてみると文字の大きさの違いがわかります。

すべての画像ファイルの余白を削除するため、mogrify コマンドを使用します。mogrify コマ ンドは convert コマンドと同じ処理を行いますが、複数ファイルを指定することが出来ます。そして画像処理した結果は元のファイルに上書きします。

% pdftoppm sample.pdf aa
% mogrify -trim *.ppm
  • 余白削除した画像をpdfに変換する

余白削除した画像ファイルは convert コマンドで pdf に変換します。

% convert *.ppm trim.pdf

すこしでも文字を大きくするため、ページ数部分も削除

単に余白を削除するだけではビューアーの余白削除機能と同じなのでページ数部分の余白を削除することも行ってみます。

画面下のページ数部分は削除しても本文は読めるのですこしでも余白をなくし文字を大きくするため、ページ数部分も削除します。処理としては本文部分の範囲を抜き出すことになります。

gimp などで本文部分の範囲をしらべます。[ツール]->[選択ツール]->[矩形選択] で範囲を選ぶモードになります。マウスカーソルの座標が左下に表示されるのでマウスを矩形の左上、右下に置いて座標値を読み取ります。

本文の位置は他のページもだいたい同じなので適当なページを選んで範囲を調べます。今回の場合、本文部分の範囲は (x,y,w,h) = (27,213, 1150,1293) でした。

本文抜き出しは convert コマンドの crop オプションを使用します。cropオプションを指定後、trim オプションを指定すると本文抜き出し後、余白削除処理を行います。

% convert -crop 1150x1293+27+213 -trim aa-1.ppm /tmp/2-1.ppm

本文抜き出し、余白削除の結果は、以下の通りです。

先ほどと同様に mogrify で画像ファイル全体を処理します。

% pdftoppm sample.pdf aa
% mogrify -crop 1150x1293+27+213 -trim *.ppm
% convert *.ppm trim2.pdf

ページ数を削除した場合の画面の比較は以下のようになります。

以下にページ数を削除しない/した画像を並べてみました。ページ数部分を削除しない/した画像と比べてもあまり変わらないようにみえますが、実際にスマートフォンで見ると文字は一回り大きいので読みやすくなります。それから目一杯余白削除したという心理的優位もありますw

以上です。次回は「本文を分割する」について書く予定です。

著者プロフィール

naka

すきなコマンドは awk と bc です。なにかを計算する時、awk か bc を使います。

記事一覧Index