Kopiererscript

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Kopiererscript

Beitrag von Erzlord Caron » 22.08.2005 21:09:48

Hallo,
angesichts der Tatsache, dass die Druckfunktion von kooka endlos langsam bis zu systemstillstand ist, würde ich für meinen Vater kerne ein Kopierscript schreiben, dass scannt, und gleich an den Drucker weiterleitet.

Dazu ein paar Fragen:
-Kann ich scanimage den Bereich des Scanners übergeben, der gescannt werden soll? (z.B. DIN A4 Größe ab der links unteren Ecke) Oder muss ich da irgendwie noch mit ner Konsolenbildbearbeitung schneiden?
-In welchem Format muss ich die Grafik per stdin an kprinter schicken?

Oder weiß jemand, wo es schon sowas gibt?

Benutzeravatar
knittels
Beiträge: 249
Registriert: 10.04.2004 23:25:47
Kontaktdaten:

Beitrag von knittels » 22.08.2005 21:16:14

Hallo,

ich mache das mit xsane. Das funktioniert wunderbar.

Gruß Knittels

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 22.08.2005 21:36:44

Hab ich mir heute kurz angesehen. Ich denke, das Interface würde ihn umbringen. Er hat grade eben meinen Versuch ihm zu erklären was Dateien und was Programme sind (nach 4 Jahren Computerbenutzung...) damit verglichen, einem Touristen vor dem Flug das Cockpit zu erklären ...

Ich will ein Icon, dass er klickt, dass geht der Scanner an, dann kommt kprinter, er drückt "Drucken" und es ist gut.

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 22.08.2005 21:52:08

Ok, hab alles soweit, denke ich, leider ist die Ausgabe zu groß. kann mir jemand sage, wie ich die cm-Größe einer PS-Datei angeben kann?

Benutzeravatar
knittels
Beiträge: 249
Registriert: 10.04.2004 23:25:47
Kontaktdaten:

Beitrag von knittels » 22.08.2005 22:21:45

Noch was:

Kopierdienst
Fotokopieren mit Sane und Cups
Praxis,Fotokopierer mit Sane und Cups,Linux, Sane, Cups, Scanner, Drucker, Kopierer, Perl, Perl-Tk, scanimage, inetd, Scanner-Tools,
c't 7/05, Seite 200

Gruß Knittels

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 22.08.2005 22:41:33

Hab ich nicht :(

Mir fehlt auch nur eine Sache:
Ich habe das Bild als PS, wenn ich es an kprinter übergebe, ist es zu groß. Benutze ich die convert-Option resize, wird runtergerechnet, was zu einer inakzeptablen Auflösung führt.

Edit:
Just for inforamtion, das hier geht. Fragt EInmal, ob er TIFF konvertieren darf, das kann man aber per "Nicht mehr fragen ausschalten.

Code: Alles auswählen

#!/bin/sh
MODE=$1
DATE=`/bin/date +%s`
DEVICE="net:192.168.2.6:snapscan:/dev/sg0"

if kdialog --yesno "Jetzt kopieren?"  --title "Caron's Kopierscript"; then
        echo "Starte Scan"
        if /usr/bin/scanimage 	--mode $MODE\
						--format tiff --device-name $DEVICE\
						-x 210mm -y 295mm --resolution 300 -t 0mm -l 0mm\
						> /tmp/$DATE.tif; then
                echo "Starte Druck"
                /usr/bin/kprinter /tmp/$DATE.tif
                echo "Lösche Dateien"
                /bin/rm /tmp/$DATE.tif
        else
                kdialog --sorry "Scan fehlgeschlagen." --title "Caron's Kopierscript"
        fi
        if kdialog --yesno "Noch eine Kopie?"i  --title "Caron's Kopierscript"; then
                ./copyscan.sh $MODE
        fi
fi

boden_pa
Beiträge: 27
Registriert: 27.08.2004 14:40:36
Wohnort: Österreich

Beitrag von boden_pa » 23.08.2005 12:47:33

Super Skript!

Ich war auch auf der Suche nach einer Kopierfunktion im Linux.
Zuerst bin ich auf das gestoßen:
http://scanbuttond.sourceforge.net/

Aber erstens bekam ich beim Kompilieren immer Fehler
und zweitens wird mein Scanner wahrscheinlich eh
nicht unterstützt.

Dann probierte ich dein Skript aus und es hat gut
funktioniert.

Für mich habe ich noch einige Kleinigkeiten geändert
(hoffe es stört dich nicht!):

Code: Alles auswählen

#!/bin/sh
#MODE=$1
DATE=`/bin/date +%s`
#DEVICE="net:192.168.2.6:snapscan:/dev/sg0"
DEVICE="artec_eplus48u:libusb:001:005"

if kdialog --yesno "Jetzt kopieren?"  --title "Caron's Kopierscript"; then
        echo "Starte Scan"
        #if /usr/bin/scanimage    --mode $MODE\
	if /usr/bin/scanimage	\
                  --format tiff --device-name $DEVICE\
                  -x 210mm -y 295mm --resolution 300 -t 0mm -l 0mm\
                  > /tmp/$DATE.tif; then
                echo "Starte Druck"
                #/usr/bin/kprinter /tmp/$DATE.tif
		/usr/bin/kprinter /tmp/$DATE.tif --nodialog
                echo "Lösche Dateien"
                /bin/rm /tmp/$DATE.tif
        else
                kdialog --sorry "Scan fehlgeschlagen." --title "Caron's Kopierscript"
        fi
        if kdialog --yesno "Noch eine Kopie?"i  --title "Caron's Kopierscript"; then
                #./copyscan.sh $MODE
		sh copyscan.sh
        fi
fi
Die Nachricht mit der Konvertierung von Tiff in ein druckbares Format bekomme ich
auch, aber ich lasse sie eh nicht mehr anzeigen.

In der Konsole bekomme ich aber eine Meldung, dass das Bild vor dem Druck noch
auf das Blatt verkleinert werden muss.
Das komische ist nur, dass er es glaube ich auf das 0,2 fache verkleinern will.

Stimmen vielleicht die scanimage Parameter x und y nicht?
Es ist zwar A4 Format, aber vielleicht falsche Maßeinheit?

mfg
Pauli

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 23.08.2005 13:39:50

Sehe ich es richtig, dass Du die Modewahl geändert hast, sowie das kprinter-Fenster nicht mehr extra erscheinen lässt?

Das brauche ich, da evt. mehrer Kopien gedruckt werden sollen, und hier ein Tintenstrahl und ein Laser stehen.

Übersehe ich sonst noch Verbesserungen?

Gegen Veränderungen habe ich natürlich nichts, ich veröffentliche das Script hiermit unter GPL *g*

Wegen der Größe:
Es gibt ja die durch die Pixel vorgegebene absolute Größe, sowie eine "virtuelle", die einfach in cm in der Dtaei steht. Die ist beim TIFF wohl falsch gesetzt, kprinter passt aber an die Seite an.
Das passiert beim PS nicht, da kriege ich dann nur ein viertel der ganzen Seiten riesig groß auf einer Seite raus.
Wie man das einstellt, weiß ich leider nciht, sonst hätte ich auch die Umwandlung in PS dringelassen.

Dass das an den Scannereinstellungen liegt, kann ich mir ncht vorstellen. Das gibt ja nur an, welcher Bereich des Scanners eingelsen werden soll. Und dass muss schon die Seitengröße sein. Evt. 1-2mm falsch, aber nciht Faktor 4 *g*

boden_pa
Beiträge: 27
Registriert: 27.08.2004 14:40:36
Wohnort: Österreich

Beitrag von boden_pa » 23.08.2005 19:15:25

Beim Skript habe ich keine Verbesserungen gemacht, sondern nur
für mich etwas angepasst! :)

Die Modewahl habe ich weggelassen, da standartmäßig grau gescannt
wird und ich einen s/w Laserdrucker habe.

Ja, das kprinter-Fenster wird bei mir nicht mehr angezeigt, da ich ja eh nur einen
Drucker verwende und meistens nur eine Kopie brauche.

GPL ist eine geniale Sache!

Ich bin draufgekommen, dass das mit der Verkleinerung vollkommen in Ordnung ist,
da ja das Bild bei 300 dpi sehr groß wird und deswegen logischerweise angepasst
werden muss.

Die Parameter x und y sind auch in Ordnung.
Bei mir kann ja das Bild nicht wirklich 1x1 kopiert werden, da mein
Drucker nicht ideal bis zum Rand drucken kann.

Vielleicht solltest du aber den Skriptaufruf am Ende: ./copyscan.sh $MODE auf
sh copyscan.sh $MODE ändern.
Bei mir hat nämlich deine Aufrufmethode komischerweise nicht funktioniert.

Außerdem glaube ich (wenn ich falsch liege bitte ausbessern!), dass der Aufruf
./ für Binärdateien und sh für sh Skriptdateien gedacht ist.

mfg
Pauli

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 05.09.2005 13:24:22

Das das Script ja einige interessiert hat, hier noch eine neue Version. Der Scanneranschluss wird automatisch ermittelt, da zu mindest bei mir die letzte Ziffer nach Reboots variiert:

Code: Alles auswählen

#!/bin/sh
#@author: "Kay-Michael Voit" <kvoit@uni-osnabrueck.de>
#@licence: GPL
#@version: 0.25

#Typ des Scanners, wie er in scanimage -L erscheint:
DEVICE=`scanimage -L|awk '/LiDE20/ {print substr(\$2,2,length(\$2)-2)}'`
MODE=$1
DATE=`/bin/date +%s`
echo $DEVICE
print()
{
        /usr/bin/kprinter /tmp/$DATE.tif
        /bin/rm /tmp/$DATE.tif
}

if kdialog --yesno "Jetzt kopieren?"  --title "Caron's Kopierscript"; then
        if /usr/bin/scanimage \
                        --mode $MODE --format tiff \
                        --device-name $DEVICE \
                        -x 210mm -y 295mm \
                        -t 0mm -l 0mm --resolution 300 \
                        > /tmp/$DATE.tif; then
                print &
        else
                kdialog --sorry "Scan fehlgeschlagen." --title "Caron's Kopierscript"
        fi
        if kdialog --yesno "Noch eine Kopie?"  --title "Caron's Kopierscript"; then
                /bin/sh ./copyscan.sh $MODE &
        fi
fi

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 27.05.2007 20:53:23

Hi, hier mal wieder eine neue Version, die angesichts das USB-Suspend-Problems in Ubuntu nun auch abspeichern kann.

Code: Alles auswählen

#!/bin/bash
#@author: "Kay-Michael Voit" <kvoit@uni-osnabrueck.de>
#@licence: GPL2.0 <http://www.gnu.de/documents/gpl.de.html>
#@version: 0.3

#Typ des Scanners, wie er in scanimage -L erscheint:
DEVICE=`scanimage -L|awk '/LiDE20/ {print substr(\$2,2,length(\$2)-2)}'`
MODE=$1
DATE=`/bin/date +%s`
echo $DEVICE

print()
{
        /usr/bin/kprinter /tmp/$DATE.tif
}

save()
{
        PATH=`/usr/bin/kdialog --title "Caron's Kopierscript" --getsavefilename ~/Desktop/Scans "*.jpg |JPEG Datei"`
        echo /tmp/$DATE.tif/tmp/$DATE.tif  $PATH
        /usr/bin/convert /tmp/$DATE.tif $PATH
}

if /usr/bin/kdialog --yesno "Jetzt kopieren?"  --title "Caron's Kopierscript"; then
        DOSCAN=1
fi

while [ "x1" = "x$DOSCAN" ]; do
        if /usr/bin/scanimage \
                        --mode $MODE --format tiff \
                        --device-name $DEVICE \
                        -x 210mm -y 295mm \
                        -t 0mm -l 0mm --resolution 300 \
                        > /tmp/$DATE.tif; then
                if /usr/bin/kdialog --yesno "Scan speichern="  --title "Caron's Kopierscript"; then
                        save
                fi

                if /usr/bin/kdialog --yesno "Scan ausdrucken?"  --title "Caron's Kopierscript"; then
                        print
                fi
        else
                /usr/bin/kdialog --sorry "Scan fehlgeschlagen." --title "Caron's Kopierscript"
        fi

        /bin/rm /tmp/$DATE.tif

        if /usr/bin/kdialog --yesno "Noch eine Kopie?"  --title "Caron's Kopierscript"; then
                DOSCAN=1
        else
                DOSCAN=0
        fi
        echo $DOSCAN
done

Dr. Seltsam
Beiträge: 1
Registriert: 24.06.2007 15:40:42
Wohnort: Hamburg

Beitrag von Dr. Seltsam » 24.06.2007 16:35:53

Ich habe eine halbe Ewigkeit gebraucht, bis ich begriffen habe, dass man das Script mit einem Parameter aufrufen muss :oops:

./copyscan.sh brachte zuvor immer nur:
scanimage: setting of option --mode failed (Invalid argument)

Mit ./copyscan.sh Gray klappte es dann :D

Beim Drucken brachte KDE dann noch einen Warnhinweis, dass tiff vom Drucksystem nicht unterstützt würde, und schlug eine wandlung vor. Das klappte dann auch. Der andere Button hieß "Leerzeichen beibehalten", was wohl ein Übersetzungsfehler ist (?). Wenn ich den wähle, druckt er die A4-Seite auf 2 Blätter verteilt.

Da Ich zu 99,9% nur schwarz-weiss kopiere, habe ich dann einfach das Script auf MODE=Gray abgeändert. So kann ich es mit einem Klick vom Desktop starten.

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 24.06.2007 16:50:07

Sorry, wie gesagt, ich habe das mal für Eigenbedarf schnell zusammengeschrieben und deshalb keine Fehler abgefangen. Ich habe meinem Vater einfach 3 Symbole auf den Desktop gelegt, in denen der Parameter bereits enthalten ist.

Das mit dem tiff hatte ich zwischendurch auch mal. Zu Feisty klappt es jetzt wieder. Ich weiß nciht, welches Paket da fehlt. Prinzipiell geht es aber auch ohne die Meldung.

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Beitrag von blueflidge » 24.07.2007 01:54:16

Vielen Dank für das Script, hab so etwas einfaches schon gesucht, bisher aber immer nur komplexere Lösungen gefunden.

Leider wird bei mir nur auf jede DIN A4-Seite ein Viertel der Datei gedruckt, jeweils zentriert.
Irgendeine Idee, woran es liegen könnte?
Beste Grüße
Tamara
The Debian Women Project

Antworten