[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Scannen automatisieren



Hallo,

Am Don, 07 Sep 2006, Christian Paul schrieb:
>So toll war er nicht, habe vergessen die ersten Zeilen mitzukopieren.
>kopmplett also nochmal so:

Ich kommentier mal etwas... *SCNR*

>/*
>#!/bin/bash
>clear

Das ist Geschmackssache, wuerde ich eher weglassen, das soll der
"user" selber machen / entscheiden ;)

>stamp=`date +'%d%m%Y_%H%M'`
>newname=$HOME"/scan/"$stamp".pdf"
># Verzeichnis ~/scan muß natürlich angelegt sein.

Das sollte man besser testen.

    test -d ~/scan/ || mkdir -p ~/scan || exit 1

Und ausserdem sollte man dann (mindestens) in dieses Verzeichnis wechseln.

Ruft man das Script z.B. in ~/ auf werden alle *.pnm geloescht, egal
ob die mit dem Script was zu tun haben oder nicht.

Besser ist es noch, man "arbeitet" in einem temporaeren
Verzeichnis. Schema:

WDIR="`mktemp -d '/tmp/scriptname.$$.XXXXXX'`"
trap 'rm -rf "$WDIR"' EXIT INT HUP

Siehe 'man mktemp' und 'help trap'.

Damit kann man sich auch gleich noch das "aufraeumen" am Scriptende
ersparen.

>echo "Scanner wird erkannt..."
>echo "(kann ein bischen dauern ..."
       ^ wo ist das Gegenstueck? ;)

>/usr/bin/scanimage \
> --device-name=net:debian-k500:snapscan:/dev/sg0 \
> --batch=out%d.pnm \
> --batch-prompt \
> --resolution=150 \
> --mode=GreyScale \
> --brightness=25% \
> --contrast=25%
>
># echo "Lösche leere Seite..."
># ls out*.pnm | sort | tail -1 | xargs rm

Legt scanimage immer eine leere Seite als letztes an? Und da die *.pnm
am Ende eh geloescht werden bietet es sich im naechsten Schritt
einfach ein 'test -s' einzubauen. Oder sind die Dateien nicht leer?

>echo "Wandle pnm nach tif..."
># jetzt alles auf eine Zeile!!
>ls out*.pnm | while read p; do echo $p; q=`echo $p | sed 
>'s/out\(.*\)\.pnm/tiff\1.tif/'`; cat $p | pnmtotiff -lzw > $q; done

Useless use of ls.
Useless use of cat.

Und muss auch nicht alles auf eine Zeile.

for f in out*.pnm; do
    t="`basename \"$f\" .pnm`.tif" ## oder auch mit sed:
    ### t="`echo \"$f\" | sed 's/out\(.*\)\.pnm/tiff\1.tif/'`"
    echo "Wandle $f -> $t";
    pnmtotiff -lzw < "$f" > "$t"
done

>echo "Fasse alle Seiten zu einem Dokument zusammen..."
>/usr/bin/tiffcp -c lzw tiff* document.tif
>
>echo "Wandle tif nach pdf..."
>/usr/bin/tiff2pdf -z document.tif -o document.pdf
>
>echo "Optimiere pdf..."
>/usr/bin/pdfopt document.pdf $newname

>echo "Cleaning up..."
>rm *.pnm
>rm tiff*
>rm document.tif
>rm document.pdf
>echo -e "Fertig.\n\n"
>*/

Siehe oben bzgl. Arbeitsverzeichnis und Aufraeumarbeiten... Mit dem
"trap" koennen die "rm ..." entfallen.

HTH, HAND
-dnh

-- 
An application/evil MIME type is defined for Web- or email-carried
mischief. Other MIME types can be embedded inside of evil sections;
this permit easy encoding of word processing documents with macro
viruses, etc.                                           -- RfC 3514



Reply to: