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; 14,7; 8,13; 12,9; 10,11 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. -dnh -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.