ich möchte Euch mein Script Scanne zu PDF vorstellen.
Benötigte Tools dafür:
SANE
ImageMagik
LIBTIF
Pdftk
kpdf
Ablauf/Funktionsweise
Anlegen/Nutzen eines Scan-Ordners
Anlegen oder, wenn vorhanden, Nutzen eines themenspezifischen Unterordners.
PDF's in diesem Unterordner können zu einem PDF generiert werden.
Scannen eines Dokumentes und Abschneiden der Ränder auf A4-Breite
Wandlung zur PDF-Datei, Abfrage auf Vorschau.
Abfrage, ob weitere Dokumente gescannt werden sollen.
Dabei ist ist der voreingestellte default-Ordner der zuletzt benutzte.
Korrektur eines einzelnen Scanns erreicht man mit Wiederholung des Scannes bei gleicher Namensvergabe des Dokumentes.
Nach Scannvorgänge und wenn mehr als ein Dokument in einem Verzeichnis sind, ist die Möglichkeit gegeben, aus den Dokumenten eines Unterordners ein einzelnes, mehrseitigen Dokument zu erstellen.
Die Reihenfolge der Seiten ist analog der Zeitfolge der Scanvorgänge.
[ Werbung: Als Distri fand Mandriva Verwendung

Viel Freude damit
sumsi
Code: Alles auswählen
!/bin/bash
## sumsi + 2007-09-19
## Definiere min. 1 Durchlauf
START=ja
SCAN=Scan_Ordner
UO=Neuer_Ordner
FO=n
while [ $START = ja ]
do
clear
echo " "
echo " #######################################################################"
echo " ## Scanne zu PDF ##"
echo " #######################################################################"
echo " "
## Scan Images
echo " "
echo " Bitte Papier horizontal zentriert (mittig) in den Scanner einlegen."
echo " (Abbruch = q) "
## Pruefe auf Arbeitsverzeichnis
if [ -d $HOME/$SCAN ]; then
echo " "
else
echo " Erzeuge $SCAN anlegen !"
mkdir $HOME/$SCAN
fi
## Abfrage/Erzeugen Unterordner
while [ $FO = n ]; do
echo " Das aktuelle Unterverzeichnis ist $UO."
echo " "
echo " Verzeichnis $UO beibehalten druecke [ENTER],"
read -p " neues Verzeichnis anlegen, bzw. in Verzeichnis wechseln (a) ?: " FO
# vermeide Fehlerausschrift bei leerer Eingabe. \a .. trenne a von Variable
FO=$FO\a
echo " "
case $FO in
a)
echo " Unterordner $UO wird beibehalten "
;;
aa)
read -p " Bitte Ordnernamen vergeben: " UO
;;
wa)
read -p " Bitte Ordnernamen vergeben: " UO
;;
qa)
echo " Abbruch "
sleep 2
exit
;;
*)
echo " Ungueltige Eingabe "
FO=n
;;
esac
done
if [ -d $HOME/$SCAN/$UO ]; then
echo " "
else
echo " Erzeuge Unterordner $UO"
mkdir $HOME/$SCAN/$UO
fi
read -p " Eingabe Dokumenten-Namen : " DN
while [ -z $DN ]; do
read -p " Eingabe Dokumenten-Namen : " DN
done
# Namens-Endung, zur Unterscheidung der Original-Scans gegen Zusammengefasste PDF's
DN=$DN.scan
echo " "
if [ -s $HOME/$SCAN/$UO/$DN.pdf ]; then
echo " Achtung:"
echo " Das Dokument $HOME/$SCAN/$UO/$DN.pdf wird ueberschrieben. "
else
echo " Das Dokument wird zu $HOME/$SCAN/$UO/$DN.pdf gespeichert. "
fi
echo " "
### Device automatisch finden - dauert laenger ###
## DEV=`scanimage -L | grep scanner|cut -c9-49|cut -d\' -f1`
## scanimage --device=$DEV --resolution=150 --format=tiff --progress --verbose --mode Gray > /tmp/image.tif
## Bitte Scanner-Device manuell finden und in naechster Zeile eintragen: scanimage -L | grep scanner
scanimage --device=mustek:/dev/sg0 --resolution=150 --format=tiff --progress --verbose --mode Gray > $HOME/$SCAN/$UO/image.tif
## schneide beiderseitig Rand ab (Scannerbreite Letter) und konvertiere zu 8 Bit Tiefe
convert -shave 80x0 -depth 8 $HOME/$SCAN/$UO/image.tif $HOME/$SCAN/$UO/image_shave.tif
## Paket LIBTIF
tiff2pdf -p A4 -j -q 75 -o $HOME/$SCAN/$UO/$DN.pdf $HOME/$SCAN/$UO/image_shave.tif
rm $HOME/$SCAN/$UO/image.tif
rm $HOME/$SCAN/$UO/image_shave.tif
## Vorschau
echo " "
read -p " Vorschau des PDF Dokumentes gewuenscht? (j/n) : " VS
VS=$VS\a
if [ $VS = ja ]; then
kpdf /$HOME/$SCAN/$UO/$DN.pdf &
fi
echo " "
read -p " Ein weiteres Dokument einscannen? (j/n) : " START
FO=n
START=$START\a
done
echo " "
## PDF zusammenfassen, wenn mehr als ein Dokument im Ordner. Benoetigt pdftk
ORDNER=$HOME/$SCAN/$UO
ANZAHL=`ls -1 $ORDNER/*.scan.pdf |wc -l`
if [ $ANZAHL -gt 1 ]; then
echo " Es sind $ANZAHL PDF-Dokumente im Ordner $UO"
read -p " PDF-Dokumente im Ordner $UO zu einem Dokument zusammenfassen? (j/n) : " MERGE
MERGE=$MERGE\a
if [ $MERGE = ja ]; then
# NUR MIT Pfadangabe UND MIT `PFAD/*` wird der komplette Pfad ausgegeben
DATEIEN=`ls -r --sort=time $HOME/$SCAN/$UO/*.scan.pdf`
pdftk $DATEIEN cat output $HOME/$SCAN/$UO/$UO\_komplett.pdf
read -p " Vorschau des zusammengefuegten PDF-Dokumentes gewuenscht? (j/n) : " VG
VG=$VG\a
if [ $VG = ja ]; then
nohup kpdf /$HOME/$SCAN/$UO/$UO\_komplett.pdf &
fi
fi
fi
echo " "
echo " ENDE"
sleep 2
exit 0