過去問とかをスキャンするときに,古いスキャナーでは濃さを指定できなくて文字が薄くなることがあります.そこで,スキャンしたけど文字が薄くて読めないという時に使えるスクリプトを書きました.ただpdfを二値化するだけですがこんな感じで結構使えます.
準備としてImageMagickをインストールしておきます.
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar xvf ImageMagick.tar.gz
cd ImageMagick-6.7.9-6/
./configure
make
make install
インストール出来たら,以下のコードを適当なファイルに書き込む.(ここではScanDataConvert.rbとする.)それと,depth = 63000 のところはしきい値なので,適当に書き換えてください.
#!/usr/bin/ruby
#文字の濃さ(63000)
depth = 63000
#文字コード指定
$KCODE = "UTF8"
if ARGV[0] == nil || ARGV[1] == nil
exit
end
#作業スペース
workspace = "/tmp/workspace/"
#作業スペース作成
com = "mkdir #{workspace}"
`#{com}`
p com
#pdfファイルを分割する
com = "pdftoppm " + ARGV[0] +" "+workspace+"aaa"
`#{com}`
p com
com = "mogrify -format jpg "+workspace+"*.ppm"
`#{com}`
p com
#各ファイルを加工する
com = "convert -threshold "+depth.to_s+" "+workspace+"*.jpg "+workspace+"result.jpg"
`#{com}`
p com
#各ファイルをまとめて新たなファイルを作成する
com = "convert "+workspace+"result*.jpg "+ARGV[1]
`#{com}`
p com
#各ファイルを削除する
#print `ls #{workspace}`
com = "rm -rf #{workspace}"
`#{com}`
p com
print "\n\ndone.\n"
あとはこのスクリプトを使うだけです.
./ScanDataConvert.rb 加工前.pdf 加工後.pdf