タスク:
1.ネットワークフォルダーにスキャンする
2.文書のコピー
3.スキャンした画像からPDFを作成する
私たちは何を持っています:
1. Kubuntu 12.04.1x64を実行しているPC(テストバージョン。将来、atom'e + Ubuntu(Centos?)サーバー上のディスクレスネットトップへの転送が行われます)
2.すでに古いHP p1505nプリンター
3. HP Scanjet G2710スキャナーのサンプリング
タスクを開始する前に、私の都市で利用できる最も安価なスキャナーと、それらがSANE のサポート対象モデルのリストにあるかどうかを調べる必要がありました。
G2710とBearPawの2台のスキャナーが選択されました。 HPは、BearPawではドライバー付きのファイルをアップロードする必要があり、最も簡単なオプションが必要であるという事実に基づいて選択されました。 このファイルがファイルホスティングに保存される期間はわかりませんが、突然何かが発生した場合は、「スパークリング」ソリューションを使用することをお勧めします。
フォーラムを検討した結果、すぐに解決策が見つかりました。 正気+ scanbuttondの束が必要です 。 公式のscanbuttond Webサイトの古い情報にもかかわらず、少なくともカブの最新のビルドはより新しいものです。 どちらのユーティリティも標準リポジトリにあります。 PPAなしでそれらを使用しました。
ユーティリティバージョン:
正気を通して、スキャナーはタンバリンと踊ることなく動作しました。 しかし、疑問が生じました-機内で3つのボタンを使用する方法は? これは、scanbuttondが役立つ場所です。 ユーティリティを配置します。 構成を編集します。 デフォルトのubuntでは、/ etc / scanbuttond / initscanner.sh.exampleにあります。 サンプルを作業バージョンにコピーします(私はviを使用していますので、慎重にコピーして貼り付けてください。viをお気に入りのエディターの名前に変更することを忘れないでください)。
そして行末に書くcp /etc/scanbuttond/initscanner.sh{.example,} && vi /etc/scanbuttond/initscanner.sh
scanimage -L
保存します。
スキャナーを接続し、sane-find-scannerを実行します。 すべて問題なければ、ターミナルで-fスイッチを使用してscanbuttondを実行し、スキャナーのボタンを押します(scanningbuttond -fが起動してから、クリックの処理を開始するまで〜7秒経過します)。
「排気」によって、各ボタンの番号を確認できます。 それらの番号を書き留めるか覚えた後、キーストロークの設定を編集します。
cp /etc/scanbuttond/buttonpressed.sh{.example,} && vi /etc/scanbuttond/buttonpressed.sh
開発者は、計画の実装に役立つ既製の例をいくつか試し、投げました。
16行目には、TMPFILEとTMPFILE_PDFという2つの変数があります。 彼らのために、スキャンされた文書とそれぞれpdfに変換された文書が置かれるパスを規定します。
例:
TMPFILE="${SAVEPATH}${DATE1}scan.jpeg" TMPFILE_PDF="${SAVEPATH}${DATE1}scan.pdf"
変数$ DATE1、$ DATE2および$ SAVEPATHは上記で登録されており、次のようになります。
DATE1=$(date +%Y_%m_%d_%H%M%S) DATE2=$(date +%Y_%m_%d_%H:%M:%S) SAVEPATH="/home/panda/Scan/"
もちろん、SAVEPATHは何でもかまいません。 まあ、またはほぼ誰でも。 fstabを介して接続されたネットワークフォルダを使用する予定であるため、問題はないはずです。
残りの2つの変数TMPFILE_PSとLOCKFILEは、デフォルト値が私にぴったりなので、触れませんでした。
次に、ボタンをカスタマイズします。 次のように持っています
case $1 in 1) echo "$DATE2 -- Button 1 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 scanimage --resolution 300 --device-name $2 --mode Color -x 210 -y 297 | pnmtops -width=8.27 -height=11.69 > $TMPFILE_PS ps2pdf $TMPFILE_PS $TMPFILE_PDF echo "$DATE2 -- PDF create done" ;; 2) echo "$DATE2 -- Button 2 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 SCAN_OPTIONS="--resolution 300" scanimage --device-name $2 $SCAN_OPTIONS | pnmtops -width=8.27 -height=11.69 | lpr -J $2 $PRINTER lockfile-remove $LOCKFILE echo "$DATE2 -- Print done" ;; 3) echo "$DATE2 -- Button 3 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 scanimage --resolution 300 --mode Color --format=jpeg -x 210 -y 297 --device-name $2 > $TMPFILE convert $TMPFILE -quality 70 $TMPFILE echo "$DATE2 -- Scan image done" ;; esac
コードから、最初のボタンが結果の画像からPDFを作成し、2番目がデフォルトでスキャンしてプリンターに印刷(コピー)し、3番目が単にスキャンすることが明らかです。
注:スキャン時には、imagemagicパッケージに含まれている変換ユーティリティを使用することに注意してください。 これにより、許容可能な画像サイズのjpegが取得されます。
また、私は次のようなイベントがあります
echo -ne '\007' > /dev/null 2>&1
そして
mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1
最初のものはスピーカーでビープ音を鳴らし(Xのないサーバーにとって重要です)、2番目のmplayerはサウンド通知を表示します(最初のアイテムは何らかの理由でtty {1-6}からのみ機能するため、Xsを備えたマシンに関連します)。 これは、スキャナーのボタンが押されたことを理解するために行われます。 ボタンが異なるため、時々押し込まれたり、ボタンが機能したかどうかが明確ではありません。 これらはすべてコメントアウトするか、試してみてください。
/etc/modprobe.d/blacklist.confファイルに以下を含む行にコメントすることで、スクイーカーを有効にできます。
blacklist snd_pcsp
そして
blacklist pcspkr
つまり 次のようになります。
#blacklist snd_pcsp
そして
#blacklist pcspkr
または、ビープパッケージをインストールして、スクリプトで呼び出します。
この奇跡をすべてオートランに書き込むことは残っています。 ファイル/etc/init.d/scanを作成して書き込みます:
#!/bin/bash killall scanbuttond scanbuttond -f >> /home/panda/Scan/scanlog.log 2>&1 &
私は自分でログを作成しました。これは次のようなものです。
必要に応じて、出力を/ dev / nullと/ var / log /の両方にリダイレクトできます。 提供する私のビジネス;)
実行権を付与し、rc.dに登録します。
chmod +x /etc/init.d/scan && update-rc.d scan defaults 80
実際、このセットアップは終了です。 画像を配置する場所、ログ形式、その可用性-すべてのスクリプトはscanbuttondで記述できるため、想像力に依存します。
結果:
この方法は、プリンタとPCがあり、これらすべてを掛けることができる場所に適しています。 高価なMFPを購入しないために、スキャナーを購入する方が簡単です。 ネットトップ+プリンター+スキャナーを購入する場合、この都市の価格は次のとおりです。
ネットトップ〜10000 r
プリンター〜1 550 r
スキャナー〜3500 r
合計で約15,000ルーブル(すべてをゼロから取得した場合)に対して、部門に持ち込んだネットワークMFP(ネットワークフォルダーにスキャンする機能を備えた)で約22,000ルーブル。 私自身は、貯蓄で問題を解決しました。 彼らはスキャナーだけを使いました。
ご清聴ありがとうございました。
PS完全なリスト/etc/scanbuttond/buttonpressed.shで不要なものがすべて削除されました。
#!/bin/sh DATE1=$(date +%Y_%m_%d_%H%M%S) DATE2=$(date +%Y_%m_%d_%H:%M:%S) SAVEPATH="/home/panda/Scan/" TMPFILE="${SAVEPATH}${DATE1}scan.jpeg" TMPFILE_PDF="${SAVEPATH}${DATE1}scan.pdf" TMPFILE_PS="/tmp/scan.ps" LOCKFILE="/tmp/scan.lock" # Lock file handling and GNOME examples for buttons 2, 3, 4 below contributed # by Lutz Müller <lutz@topfrose.de>. if ! lockfile-create --retry 2 $LOCKFILE; then echo "$DATE1 -- Error: scanning already in progress for $2" exit fi rm -f $TMPFILE rm -f $TMPFILE_PDF rm -f $TMPFILE_PS case $1 in 1) echo "$DATE2 -- Button 1 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 scanimage --resolution 300 --device-name $2 --mode Color -x 210 -y 297 | pnmtops -width=8.27 -height=11.69 > $TMPFILE_PS ps2pdf $TMPFILE_PS $TMPFILE_PDF echo "$DATE2 -- PDF create done" ;; 2) echo "$DATE2 -- Button 2 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 SCAN_OPTIONS="--resolution 300" scanimage --device-name $2 $SCAN_OPTIONS | pnmtops -width=8.27 -height=11.69 | lpr -J $2 $PRINTER lockfile-remove $LOCKFILE echo "$DATE2 -- Print done" ;; 3) echo "$DATE2 -- Button 3 has been pressed on $2" echo -ne '\007' > /dev/null 2>&1 mplayer /usr/share/sounds/KDE-K3B-Insert-Medium.ogg > /dev/null 2>&1 scanimage --resolution 300 --mode Color --format=jpeg -x 210 -y 297 --device-name $2 > $TMPFILE convert $TMPFILE -quality 70 $TMPFILE echo "$DATE2 -- Scan image done" ;; esac lockfile-remove $LOCKFILE