ScanSnap fi-5110EOXをLinux (Debian/Ubuntu)で使う方法。
ご想像のとおり、saneを使うだけ。
<準備>
scanimageがあれば良い。したがって、
# apt-get install sane-utils
これでOK。あとはつなげばスキャンできる。ただ、あとの準備として以下を入れておく。
# apt-get install imagemagick poppler-utils
<スキャン>
xsaneを入れてあれば、それでも良いし、上述のsane-utilsであればscanimageが使える。
使い方は以下。
/usr/bin/scanimage --batch --source "ADF Duplex" --mode Color --resolution=190 --y-resolution=190 --format=tiff
これでカレントにout1.tif, out2.tifという感じででてくる。ADF Frontで表だけにしたり、Grayで白黒にできたりするが、そこはscanimage --helpを参照。resolutionを190としたのは、これ以上大きくすると紙をフィードしてる途中でスキャンが止まってしまうから。
ここはちょっと残念だが、実用範囲なのでOKとする。
<画像変換>
1枚1枚の無圧縮TIFFファイルができるので、ImageMagickでJPEG圧縮してPDFに収める。
convert -compress JPEG -quality 85 -adjoin `ls -1 *.tif | sort -t t -k 2 -n` out.pdf
これでout1.tif, out2.tif, out3.tif... がout.pdfにくっつく。
sort -t t -k 2 -nは順番に並べるためのものだが、少々トリッキーなので説明しておくと、
outN.pdfのNが桁数固定でないので、ただのsortでは順番に並ばない。
普通の1,2,3,...10,11,...であれば-nを使えば数値順に並べられるが、out10.pdfなどという形なので、
それもできない。しかし、ou「t」の「t」をフィールドセパレータと見立てて、2番目のフィールドを数値から始まるようにした後、数値順でソートすればソートできるというわけだ。
これでコマンドラインでのスキャン作業はおしまい。結構簡単であった。
参考:
sasasin.net/diary
OpenCVが面白そうなので、そのうちチャレンジしてみようかな。
<おまけ:画像取り出し>
もしPDFに入ったJPEGが欲しくなったら、convertで取り出せるかと思ったが、普通に
convert out.pdf out.jpgとすると、画像サイズが小さくなってしまう。
そこで、poppler-utilsに付属しているpdfimagesを使う。
pdfimages -j out.pdf image
こうすると、image-001.jpgなどという形で、JPEGファイルを切り出せる。
参考:
Extract images from a PDF document | Stefaan Lippens' webface