本をスキャンした際に、スキャンサイズと原稿サイズが一致していなくて、余白ができてしまうことがあります。
その余白をコマンドラインで一括して削除する方法を紹介します。
目次
イメージ
次のようになっている本を
□□□□□□■■ □□□□□□■■ □□□□□□■■ ■■■■■■■■
このようにしたいとします。
□□□□□□ □□□□□□ □□□□□□
pdfの場合は、まずはjpg画像に変換
pdfのjpgへの変換には、pdfimagesを使います。このコマンドはxpdfツールセットうちの一つです。
インストールされていない場合は、macならば brew install xpdfでインストールします。
pdfの中に埋め込まれているjpgを抜き出します。文字データの場合は抜き出されません。
次のように使用します。
pdfimages -j original.pdf original
すると、original.pdfからoriginal-0000.jpgのような連番の画像ファイルが抽出されます。
画像の余白座標を見積もる
identifyコマンドで、画像サイズを確認します。imagemagickツールセットのうちの一つです。
identify original-0000.jpg
画像ビューアーなども併用して、余白サイズを見積もります。
画像の余白をカット
次にconvertコマンドで、余白をカットします。これもimagemagickツールセットのうちの一つです。
convert -crop 2000x1000+0+0 original-*.jpg cropped.jpg
開始座標(0, 0)で、サイズ2000×1000の画像 cropped-0000.jpgが連番で出力されます。
余白の座標は、面倒でなければトライ&エラーで決めればよいでしょう。
ページの順序がおかしくなりましたか?
10ページ以上あると、入力ファイルの順番が 1, 10, 2, 3, 4, …, 9 となるのが原因です。
その場合は、次のようにsortを間に入れましょう。
convert -crop 2000x1000+0+0 `ls original-*.jpg | sort --version-sort` cropped.jpg
回転したい場合
なお、画像を90度回転しておきたい場合は、convertコマンドを使って、次のようにします。
convert -rotate 90 original-*.jpg rotated.jpg
連番jpgをpdfへ変換する
最後に、convertコマンドを使って、画像をpdfに変換します。(余白座標が決まっている場合は、ひとつ前のconvertコマンドで、出力を直接pdf形式にしてもよいでしょう。)
convert `ls cropped-*.jpg | sort --version-sort` output.pdf
以上で、余白を削除したpdfファイルになりました。
おつかれさまでした。
pdfの奇数/偶数ページだけ上下逆さにしたい場合
なお、pdfのままでページの回転をしたい場合には、pdftkを使えばできます。
input.pdfの偶数ページだけ180度回転して、output.pdfに出力するには次のようにします。
pdftk input.pdf shuffle odd evendown output output.pdf
pdftkでは、shuffleの部分がcatになっている例をよく見かけますが、今回の場合はそうすると、奇数ページをすべて出力した後に、偶数ページが出力され、ページ順が変わってしまいますので、注意です。
逆に、奇数ページだけ回転する場合には次のようにします。
pdftk input.pdf shuffle even odddown output output.pdf
downのところは、north, south, east, westなどと変えることで回転方向を選択できます。
詳しくは、pdftk –help | grep rotate などを参照してください。
以上、スキャンしたpdf/画像から一括して余白を消す方法。linux/macのコマンドラインを使って。でした。