Scannen/Kopieren per Shell-Script

Scannen stellt unter Linux kein großes Problem mehr dar – viele Scanner werden von der Sane-API unterstützt und lassen sich mittels diverser Frontends komfortabel nutzen.

Oftmals ist die Nutzung eines grafischen Frontends allerdings gar nicht erforderlich – gerade wenn um reine Archivierungszwecke oder einfache Kopien vollständiger A4-Seiten geht. Anstelle im grafischen Frontend zig Knöpfe zu drücken, um einen Scan als PDF-Datei abzulegen, lässt sich das Ganze per Shellscript und scanimage automatisieren. Dieses Script lässt sich auch als Starter mit der enthaltenen Befehlszeile gnome-terminal -x sh -c "/home/user/scripts/scan-a4-color-300dpi.sh" auf den Desktop legen und bequem starten.

Scannen und als PDF ablegen

Das nachfolgende Script erzeugt eine PDF-Datei in Farbe. Hierzu wird die A4-Vorlage mit 300 DPI in Farbe eingescannt, das resultierende Image optimiert, in das JPEG-Format umgewandelt und als PDF-Datei, benannt nach Datum und Uhrzeit, abgelegt. Anschließend wird diese im Dokumentbetrachter evince geöffnet.

#!/bin/bash
# Setzen der Variablen (Datum, Uhrzeit)
zeitstempel=$(date +%Y-%m-%d_%H-%M-%S)

# Scanvorgang, Ausgabeformat TIFF
scanimage \
--clear-calibration \
--format=tiff \
--mode Color \
--depth 8 \
--resolution 300 \
--icc-profile /usr/share/color/icc/adobergb1998.icc \
-l 1mm \
-t 1mm \
-x 208mm \
-y 295mm \
-p \
-v \
> /home/user/Scans-Neu/tmp/"$zeitstempel".tif

# Konvertieren des TIFF-Bildes in JPEG incl. Bildverbesserung
convert \
-quality 95 \
-gamma 1.0 \
-brightness-contrast 10x40 \
/home/user/Scans-Neu/tmp/"$zeitstempel".tif \
/home/user/Scans-Neu/tmp/"$zeitstempel".jpg

# Konvertierung ins PDF-Format
convert /home/user/Scans-Neu/tmp/"$zeitstempel".jpg /home/user/Scans-Neu/"$zeitstempel".pdf

# Entfernen der temporaeren Dateien
rm /home/user/Scans-Neu/tmp/"$zeitstempel".tif
rm /home/user/Scans-Neu/tmp/"$zeitstempel".jpg

# Anzeigen des fertigen PDF-Dokuments
evince /home/user/Scans-Neu/"$zeitstempel".pdf

Das Script lässt sich in vielen Punkten individualisieren, z.B. hinsichtlich der Farbtiefe. Reine Textvorlagen lassen sich z.B. im „Lineart“-Modus (1-Bit) scannen und mittels tiff2pdf mit geringem Speicherbedarf als PDF ablegen. Denkbar ist beispielsweise auch eine integrierte Texterkennung mittels OCR, um ein durchsuchbares Dokument zu erzeugen. Für meinen Anwendungsfall reichte das einfache Einbetten eines JPEG-Image in einem PDF allerdings aus.

Eine Abwandlung des obigen Scripts verwandelt den Scanner in einen Farbkopierer:

Scannen und ausdrucken (Kopieren)

Das folgende Script ist eine Abwandlung des obigen „Scan2PDF“-Scripts. Die A4-Vorlage wird mit 300 DPI eingescannt, das resultierende Image optimiert, mittels tiff2ps für den Druck aufbereitet und über eine Pipe an den Drucker gesendet:

#!/bin/bash
# Setzen der Variablen (Datum, Uhrzeit)
zeitstempel=$(date +%Y-%m-%d_%H-%M-%S)

# Scanvorgang, Ausgabeformat TIFF
scanimage \
--clear-calibration \
--format=tiff \
--mode Color \
--resolution 300 \
--icc-profile /usr/share/color/icc/adobergb1998.icc \
-l 1mm \
-t 1mm \
-x 208mm \
-y 295mm \
-p \
-v \
> /home/user/Scans-Neu/tmp/"$zeitstempel".tif

# Konvertieren des TIFF-Bildes incl. Bildverbesserung
convert \
-gamma 1.0 \
-brightness-contrast 10x40 \
/home/user/Scans-Neu/tmp/"$zeitstempel".tif \
/home/user/Scans-Neu/tmp/"$zeitstempel"p.tif

## Konvertieren des TIFF-Bildes ins PS-Format und starte Druckjob
tiff2ps -z -w 8.27 -h 11.69 /home/user/Scans-Neu/tmp/"$zeitstempel"p.tif | lp -d "Druckername" -o fit-to-page -o fitplot

# Entfernen der temporaeren Dateien
rm /home/user/Scans-Neu/tmp/"$zeitstempel".tif
rm /home/user/Scans-Neu/tmp/"$zeitstempel"p.tif

Natürlich gibt es auch hier wieder viele Möglichkeiten, das Script zu individualisieren.

Viel Spaß beim Basteln!

One thought on “Scannen/Kopieren per Shell-Script

  1. Reginaldo Stueckner

    Hallo und guten Morgen / Tag / Abend aus Sofia in Bulgarien 😁☕👍🇧🇬, da der für 10 Lewa erstandene Dell X200 laptop und Original Debian kein GUI anzeigt, dachte ich mir dass es 100 pro auch möglich ist, in der bash aka im terminal aka auf der Befehlszeile zu scannen. Also duckduckgo als Suchmaschine befragt und diese sehr hilfreiche Informationen gefunden. DANKE also an denjenigen der sich die Mühe gemacht hat und das publiziert hat. Mit einem Programm werde ich noch versuchen dem Original Debian zu erklären dass andere Distributionen kein Problem mit der Grafik und dem verbauten Chip haben und während der Installation das auch richtig erkannt haben und der Fenster Manager danach dann via ‚ startx‘ problemlos startete, xrandr ist das Programm das ich einsetzen werde und HOFFE dass das GUI danach dann auch funktioniert. Mfg Reginaldo Andres Stueckner 00359 876049401 / Iskar 11, 1000 Sofia – Rsaderobg@gmail.com

    Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert