ページ

2012-01-07

GNOME ShellのFavorites Barに好きなプログラムを追加する(2)

以前 GNOME ShellのFavorites Barに好きなプログラムを追加するとして手でデスクトップファイルを作る方法を書いたが、「lxshortcut」というコマンドを使うと、GUIで簡単に作れる。その方法は、以下のとおり。

<準備>
# apt-get install lxshortcut
名前のとおり、LXDEの一部だが、Gtk+関連くらいしか依存していないので、お気軽にインストールできる。

<使い方>
$ cd ~/.local/share/applications
$ lxshortcut -o example.desktop

これで編集ウィンドウが開く。↓みたいな感じ。

画面のとおり入れれば.desktopファイルができる。あとは同じようにアクティビティー・オーバービューから検索して、Favorites Barに乗せればよい。

2012-01-04

SheevaPlugを使ってScanSnap fi-5110EOXをネットワーク対応スキャナにする

タイトルはかなり大げさ。

うちにはfi-5110EOXがあるが、あまり使われていない。その理由は、いちいちWindows PCを立ち上げて作業をしないといけないからだと考えた。そうなのであれば、もっと手軽にスキャンできればよい。そこで、常時起動しているSheevaPlug (Debian入り)でスキャンし、共有フォルダに保存させることにした。
(なぜ「ScanSnap fi-5110EOXをDebian/Ubuntuで使う」をしたかというと、これがしたかったため。)

ベストな方式は、ScanSnapについているSCANボタンを押せば自動的にスキャンしてくれる方式。しかし、頓挫したためやめた(実装としては、scanbuttond, scanbdなどがあるようだ)。

そこで、スマートフォンのWebブラウザを使ってスキャンの指示をすることを考え、Web画面を適当に実装したところ、うまくいった。
スクリーンショットはこんな感じで、スキャンボタンを押すと、scanimageコマンドを起動してスキャンしてくれる。


副作用として、カラー/白黒や両面などのパラメータも指定できるようになった。

せっかくなので公開しておく。ダウンロードはこちらから:
https://code.launchpad.net/~sunnyone41/+junk/scanweb
bzr branch lp:~sunnyone41/+junk/scanwebするもよし、Browse the codeして全部同じディレクトリに
ダウンロードするもよし。ただし、HTMLが適当だったり、OSコマンドインジェクションできたりするので、使うときは適当に直して使うのが推奨。

ScanSnap fi-5110EOXをDebian/Ubuntuで使う

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