Scanner/Brother/Scankey-Tool

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein einzelnes Paket installieren

  3. Ein Terminal öffnen

  4. Root-Rechte

  5. Einen Editor öffnen

  6. Programme automatisch starten

  7. Ein Programm ohne Menüeintrag starten

  8. Archive entpacken

Inhaltsverzeichnis
  1. Voraussetzungen
  2. Installation
  3. Start
    1. Automatischer Start
  4. Verwendung
  5. Scankey-Tool Optimierung
    1. Auflösung
    2. Dateiname
      1. Dateiformat
        1. PDF-Format
    3. Scan-Zielverzeichnis in Dateimanager aut...
    4. Beispiel
    5. Tipp
  6. Links

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

Paketliste zum Kopieren:

sudo apt-get install sane-utils 

Oder mit apturl installieren, Link: apt://sane-utils

Installation

Nach der Installation von sane-utils[1] kann ein DEB-Paket 64 Bit ⮷ oder 32 Bit ⮷ 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):

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 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:

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).