Re: Scannen automatisieren
Am Samstag, 9. September 2006 06:02 schrieb David Haller:
> 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*
Dafür kennt man Dich ja auch ...
>
> >/*
> >#!/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
ACK
>
> 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'.
kannte ich noch nicht.
>
> 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? ;)
trapped!
>
> >/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?
Ich habs mit scanimage merkwürdigerweise mal so, mal so erlebt, ohne mich um
die einzelnen Versionen gekümmert zu haben.
>
> >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.
den von Dir zu kriegen, ist ja auch nix böses..
>
> 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"
> >*/
OHDH
>
> 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
Gruß
Christain Paul
--
Why you can't find your system administrators:
(S)he's busy installing xfishtank on the main fileserver. -- Mark D.Roth
roth@uiuc.edu
Reply to: