ubuntuusers.de

Scankey-Tool

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/scanner.png Die Installation des Brother Scankey-Tools ist optional und ermöglicht es, den Brother-Scanner mit der "Scanner"-Taste am Gerät zu steuern.

Voraussetzungen

Das Scankey-Tool benötigt einen Brother-Scanner bzw. -Multifunktionsgerät (MFC), einen installierten Scannertreiber und folgendes Paket

  • sane-utils (universe )

Paketliste zum Kopieren:

sudo apt-get install sane-utils 

Oder mit apturl die Pakete installieren. Link: apt://sane-utils

Installation

Nach der Installation von sane-utils [1] kann ein DEB-Paket brscan-skey-VERSION.ARCHITEKTUR.deb 🇬🇧 heruntergeladen und manuell installiert werden [2].

Hinweis!

Fremdpakete können das System gefährden.

Start

Das Scankey-Tool sollte alle angeschalteten Geräte automatisch erkennen. Zuerst wird das Terminal [3] gestartet, danach werden alle erkannten Geräte angezeigt:

brscan-skey        # Hintergrundprogramm starten
brscan-skey -l     # Parameter "-l" zeigt alle gefundenen Geräte 

Man sollte eine ähnliche Ausgabe wie diese hier bekommen:

BrotherNetzScanner : brother2:net1;dev0  : 192.168.178.30       Active
BrotherUSBScanner  : brother2:bus2;dev1  : USB                  Active

Sollte nichts angezeigt werden, kann es helfen, das Scantool mit dem Befehl brscan-skey -t zu stoppen und dann erneut einen Suchlauf mit brscan-skey -l anzustoßen.

Als Standard wird die erste Ethernet-Schnittstelle (´eth0´) genutzt. Wenn dies nicht die tatsächlich genutzte Schnittstelle ist, muss man die Konfigurationsdatei /usr/local/Brother/sane/brscan-skey-VERSION.cfg oder /opt/brother/scanner/brscan-skey/brscan-skey-VERSION.cfg mit Root-Rechten editieren [4][5]. Es muss eine Zeile ergänzt werden, in der die richtige Netzwerkschnittstelle angegeben werden muss. Beispiel:

eth=ath0

Nach Änderung und Neustart des Scankey-Tools arbeitet es wie gewünscht.

Automatischer Start

Es ist zwar nicht zwingend nötig, aber das Scankey-Tool kann beim Anmelden eines Benutzers automatisch gestartet werden [6]. Ansonsten muss das Programm vor jeder Verwendung manuell gestartet werden [7].

Verwendung

Nach einem Druck auf die "Scanner"-Taste am Gerät gibt es vier Wahlmöglichkeiten (mit Pfeiltasten auswählen, mit "Start" bestätigen):

  • In eine E-Mail scannen

  • Als Bild scannen (mit GIMP öffnen)

  • OCR-Scan

  • In eine Datei scannen (wird im Ordner ~/brscan im Homeverzeichnis gespeichert)

Zum E-Mail-Versand versucht Scankey den MTA sendmail zu nutzen. Dieser ist in der Standard-Installation von Ubuntu nicht enthalten. Da sendmail relativ schwer zu konfigurieren ist, wird an dieser Stelle die Installation von Postfix empfohlen. Ist Postfix korrekt eingerichtet, müssen im Verzeichnis /usr/local/Brother/sane noch die Dateien brscan_mail.config und brscan_mailmassage.txt angepasst werden. Die nötigen Einstellungen sind selbsterklärend und beschränken sich auf "Absender", "Zieladresse", "Betreff", "Nachricht".

Scankey-Tool Optimierung

Nach der Installation empfiehlt es sich, die Datei /opt/brother/scanner/brscan-skey/script/scantofile-0.2.4-0.sh (oder auch /usr/local/Brother/sane/script/scantofile-0.2.1-3.sh) mit Root-Rechten wie folgt anzupassen:

Auflösung

resolution=100

durch

resolution=300

ersetzen, um eine angemessene Scan-Qualität (300 dpi) zu erhalten.

Dateiname

output_file=`mktemp ~/brscan/brscan.XXXXXX`

durch die zwei Zeilen

output_file=~/brscan/brscan_""`date +%F_%H-%M-%S`
touch $output_file

ersetzen, um einen Dateinamen zu erhalten, der statt kryptischen Zufallszeichen das Datum und die Uhrzeit des Scan-Zeitpunkts enthält.

Dateiformat

Für diese Änderung(en) wird das Programm pnmtojpeg oder pnmtops verwendet, das Teil des Paketes netpbm ist. Also muss noch das folgende Paket installieren werden:

  • netpbm

Paketliste zum Kopieren:

sudo apt-get install netpbm 

Oder mit apturl die Pakete installieren. Link: apt://netpbm

Dann die Zeile

scanimage --device-name "$device" --resolution $resolution> $output_file

durch die drei Zeilen

scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
| pnmtojpeg --quality=90 > "$output_file".jpg
rm $output_file

ersetzen, um als Resultat eine jpg-Datei in angemessener Qualität (90%) zu erhalten, anstelle einer Datei im platzraubenden Format PNM und mit zufälligem Dateinamen. Die obigen Parameter -l 0 -t 0 -x 210.00 -y 292.00 dienen einer geeigneteren Auswahl des Scanbereichs für das DIN-A4-Format (Testgerät: Brother MFC-7820N).

PDF-Format

Man kann auch die folgenden vier Zeilen verwenden:

scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 295.00 \
| pnmtops -imagewidth 8.26 -nocenter | gs -q -dNOPAUSE -sDEVICE=pdfwrite \
-sOutputFile=- - > "$output_file".pdf
rm $output_file

Dies erzeugt die Ausgabe in eine PDF-Datei statt in eine JPG-Datei. Die obigen Parameter -l 0 -t 0 -x 210.00 -y 295.00 und -imagewidth 8.26 -nocenter dienen einer geeigneteren Bereichsauswahl für das DIN-A4-Format für optimales Ergebnis (Testgerät: Brother MFC-7820N).

Scan-Zielverzeichnis in Dateimanager automatisch öffnen

Um nach dem Scanvorgang gleich das Zielverzeichnis im Dateimanager zu öffnen, folgende Zeilen am Ende des Skriptes hinzufügen:

# Dateimanager mit Zielordner des Scans öffnen. Kann für verschiedene Dateimanager angepasst werden.
# Reihenfolge im Beispiel:
# 1. nautilus (Unity und GNOME 3)
# 2. konqueror (KDE)
# 3. dolphin (KDE)
if [ "`which nautilus`" != '' ];then
    nautilus ~/brscan
else
    if [ "`which konqueror`" != '' ];then
        konqueror ~/brscan
    else
        if [ "`which dolphin`" != '' ];then
            dolphin ~/brscan
        fi
    fi
fi

Beispiel

Dies ist ein Beispiel der kompletten Skript-Datei scantofile-0.2.1-3.sh nach Umsetzung obiger Verbesserungen:

#! /bin/sh
set +o noclobber
#
#   $1 = scanner device
#   $2 = friendly name
#
# MJ:   100|150|200|300|400|600|1200|2400|4800|9600dpi [200]
# MJ: Original was 100. E.g. for the MFC-7820N the maximum is 2400x600 (9600 with interpolation)
#
# MJ: Set output path and resolution as desired:
# MJ: Original:
#resolution=100
# MJ: Better: normal=300. HQ=600:
resolution=300
output_path=~/brscan

device=$1
mkdir -p $output_path
if [ "`which usleep`" != '' ];then
    usleep 10000
else
    sleep  0.01
fi
# MJ: Original:
#output_file=`mktemp ~/brscan/brscan.XXXXXX`
# MJ: Better: time stamp instead of random characters: See next two lines:
output_file=$output_path""/brscan_""`date +%F_%H-%M-%S`
touch $output_file

chmod 644 $output_file
echo "scan from $2($device) to $output_file"

# MJ: Original:
#scanimage --device-name "$device" --resolution $resolution> $output_file

# MJ: Modified:
#scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 > $output_file

# MJ: PNG: (requires installation of the packet "netpbm")
#scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
#| pnmtopng > "$output_file".png
#rm $output_file

# MJ: JPG: (requires installation of the packet "netpbm")
scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
| pnmtojpeg --quality=90 > "$output_file".jpg
rm $output_file

# MJ: PS: (requires installation of the packet "netpbm")
#scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 292.00 \
#| pnmtops -dpi $resolution -equalpixels > "$output_file".ps
#rm $output_file

# MJ: PDF: (requires installation of the packet "netpbm")
#scanimage --device-name "$device" --resolution $resolution -l 0 -t 0 -x 210.00 -y 295.00 \
#| pnmtops -imagewidth 8.26 -nocenter | gs -q -dNOPAUSE -sDEVICE=pdfwrite \
#-sOutputFile=- - > "$output_file".pdf
#rm $output_file

# MJ: FINALLY: Open file manager showing the target directory of the scan:
# Use a file browser that is available in the current Linux installation.
# 1st choice: nautilus (gnome default file manager)
# 2nd choice: konqueror (KDE default file manager)
# 3rd choice: dolphin (KDE default simple file manager)
if [ "`which nautilus`" != '' ];then
    nautilus $output_path
else
    if [ "`which konqueror`" != '' ];then
        konqueror $output_path
    else
        if [ "`which dolphin`" != '' ];then
            dolphin $output_path
        fi
    fi
fi

Tipp

Wenn man z.B. das Einscannen per Scan-Key direkt in eine Text-Datei (OCR) nicht benötigt, kann man diese Funktionen nach Belieben umdefinieren. Generell sind die vier Funktionen im Drucker-Display den folgenden Dateien in /opt/brother/scanner/brscan-skey/script/ wie folgt zugeordnet:

  • Brother Menü "Scannen: Datei " - scantofile-0.2.1-3.sh

  • Brother Menü "Scannen: Text " - scantoocr-0.2.1-3.sh

  • Brother Menü "Scannen: E-Mail" - scantoemail-0.2.1-3.sh

  • Brother Menü "Scannen: Bild " - scantoimage-0.2.1-3.sh

Beispielsweise kann man die Datei scantoocr-0.2.1-3.sh mit dem identischen Inhalt wie scantofile-0.2.1-3.sh versehen und lediglich diejenigen Parameter ändern, die man gerne als zweite Option noch am Drucker verfügbar hätte (z.B. als Ziel eine PDF- statt einer JPG-Datei, siehe oben).

Diese Revision wurde am 15. Januar 2020 10:17 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Scanner, Hardware, Büro