David Haller, Mittwoch 10 März 2004 20:58:
Hallo,
Am Wed, 10 Mar 2004, Matthias Houdek schrieb:
Also, für 4 Seiten:
1 - 2 - 3 - 4 -----drucken---> Vorderseite: 4 - 1, Rückseite: 2 - 3
==== psbooklet.sh ==== #! /bin/bash # (c)2000 David Haller # usage="Usage: psbooklet.sh DATEI AUSGABEDATEIPRAEFIX"
if test "$#" -ne "2"; then echo "$usage"; exit 1; fi INFILE="$1" OUTFILE="$2" if test "x$INFILE" = "x-"; then INFILE="/tmp/psbooklet_infile.ps"; cat /dev/stdin > "$INFILE"; fi if test "x$OUTFILE" = "x-"; then OUTE=""; OUTO="" else OUTE='${OUTFILE}-${i}-even.ps' OUTO='${OUTFILE}-${i}-odd.ps' fi if ! test -r "$INFILE"; then echo "$usage"; exit 1; fi
SIGN=20 # ergibt "20 mod 4" = 5 Blaetter zum Falten und heften
# Das folgende _scheint_ zu tun... PAGES=$(grep '%%Pages:' $INFILE | head -1 | sed 's/%%Pages: //')
TMP="/tmp/psbooklet$$.ps"
i=1 while test $[(i-1) * SIGN] -le $PAGES do START="$[($i-1) * $SIGN + 1]" END="$[$i * $SIGN]" psselect -p"$START-$END" $INFILE | psbook | psnup -2 > $TMP # Jetzt sollten in $TMP die passend sortierten Seiten # von 1 bis $SIGN bzw. (i-1) * $SIGN +1 bis i * $SIGN enthalten # sein. Also beim ersten Schleifendurchlauf die Seiten 1-20 # als 20,1; 2,19; 18,3; 4,17; 16,5; 6,15; ... psselect -e "$TMP" `eval echo "$OUTE"` # gerade Seiten drucken (d.h. 2,19;4,17...) # je nach Drucker vertauschen, ggfs. ein "-r" einfuegen! psselect -o "$TMP" `eval echo "$OUTO"` # ungerade Seiten (d.h. 20,1; 18,3...) i=$[i+1] # Und ab zum naechsten Stapel `a "$SIGN" Seiten... ;) done # und aufraeumen: rm $TMP if test "x$1" = "x-" && test "x$INFILE" = "x/tmp/psbooklet_infile.ps" then test -f "$INFILE" && rm "$INFILE"; fi ====
Falls du Probleme beim anpassen auf deinen Drucker hast melde dich.
Danke, an sowas in der Art habe ich auch noch gedacht, aber ich wollte das Fahrrad kein zweites Mal erfinden. Zum Glück habe ich einen Duplex-Drucker, so dass mir das psselect [-e|-o] erspart bleibt ;-). Und über KDEprint hab ich es inzwischen auch hinbekommen. Mein Denkfehler war, dass ich psnub immer vor psbook machen wollte (frag mich nicht, warum). Aber dein Script ist trotzdem auch für mich noch nutzbar, weil ich ggf. auch mal druckfertige "Handbücher" für andere als Datei weitergeben will. Nur lesen tun die sich so schlecht *g*. Außerdem sortiert dein Script gleich so schön zu 5er-Blöcken, was bei großen Dateien (>> 20) natürlich auch ein Vorteil ist (wobei ich sowieso meist schneide, loche und dann in kleine Ringbücher abhefte - da wäre das egal). Vielleicht könnte man noch die Teilstapelgröße als Startparameter mit angeben. Wenn leer, wird alles in einem Schub gemacht. -- Gruß MaxX 8-) Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu