13e12c5d1SDavid du Colombier#!/bin/rc 2*7dd7cddfSDavid du Colombierif (~ $DEBUG 1) flag x + 33e12c5d1SDavid du Colombier# convert Tex dvi to PostScript 4219b2ee8SDavid du ColombierPATCH='%!PS-Adobe-2.0' 5*7dd7cddfSDavid du Colombierswitch ($LPCLASS) { 6*7dd7cddfSDavid du Colombiercase *hp4simx*; 7*7dd7cddfSDavid du Colombier PATCH=$PATCH' 8*7dd7cddfSDavid du Colombier%% set the default papertray to be the lower tray for HP4siMX printers 9*7dd7cddfSDavid du Colombier statusdict begin defaultpapertray end 1 ne { 10*7dd7cddfSDavid du Colombier statusdict begin 11*7dd7cddfSDavid du Colombier 1 setdefaultpapertray 12*7dd7cddfSDavid du Colombier end 13*7dd7cddfSDavid du Colombier } if' 14*7dd7cddfSDavid du Colombier} 153e12c5d1SDavid du Colombierfor (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) { 163e12c5d1SDavid du Colombier switch ($i) { 17*7dd7cddfSDavid du Colombier case man manual manualfeed; 18*7dd7cddfSDavid du Colombier PATCH=$PATCH' 19*7dd7cddfSDavid du Colombier%%BeginFeature: *Select ManualFeed 20*7dd7cddfSDavid du Colombier[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 21*7dd7cddfSDavid du Colombier << /ManualFeed true >> setpagedevice 22*7dd7cddfSDavid du Colombier } {statusdict begin /manualfeed true def end} ifelse 23*7dd7cddfSDavid du Colombier } stopped cleartomark 24*7dd7cddfSDavid du Colombier%%EndFeature' 25*7dd7cddfSDavid du Colombier case simplex; 26*7dd7cddfSDavid du Colombier DUPLEX=0 27219b2ee8SDavid du Colombier case [0-9]; 28219b2ee8SDavid du Colombier switch ($LPCLASS) { 29219b2ee8SDavid du Colombier case *post2*; 30219b2ee8SDavid du Colombier switch ($i) { 31219b2ee8SDavid du Colombier case 0; PATCH=$PATCH' 32219b2ee8SDavid du Colombiersystemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 33219b2ee8SDavid du Colombier{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 34219b2ee8SDavid du Colombier{ 35219b2ee8SDavid du Colombier currentpagedevice/InputAttributes get {0 get} stopped 36219b2ee8SDavid du Colombier {pop pop} {2 dict dup /InputAttributes 1 dict dup 37219b2ee8SDavid du Colombier /Priority[0] put put dup /TraySwitch false put setpagedevice} ifelse 38219b2ee8SDavid du Colombier false (0) startjob pop 39219b2ee8SDavid du Colombier} if' 40219b2ee8SDavid du Colombier case 1; PATCH=$PATCH' 41219b2ee8SDavid du Colombiersystemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 42219b2ee8SDavid du Colombier{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 43219b2ee8SDavid du Colombier{ 44219b2ee8SDavid du Colombier currentpagedevice/InputAttributes get {1 get} stopped 45219b2ee8SDavid du Colombier {pop pop} {2 dict dup /InputAttributes 1 dict dup 46219b2ee8SDavid du Colombier /Priority[1] put put dup /TraySwitch false put setpagedevice} ifelse 47219b2ee8SDavid du Colombier false (0) startjob pop 48219b2ee8SDavid du Colombier} if' 49219b2ee8SDavid du Colombier } 50219b2ee8SDavid du Colombier case *; PATCH=$PATCH' 51219b2ee8SDavid du Colombierstatusdict begin $i setpapertray end' 52219b2ee8SDavid du Colombier } 533e12c5d1SDavid du Colombier case 11x17 ledger; PATCH=$PATCH' 543e12c5d1SDavid du Colombierstatusdict begin '$i'tray end' 553e12c5d1SDavid du Colombier } 563e12c5d1SDavid du Colombier} 57219b2ee8SDavid du Colombierif (! ~ $#DUPLEX 0) { 58*7dd7cddfSDavid du Colombier switch ($DUPLEX) { 59*7dd7cddfSDavid du Colombier case 0; 60*7dd7cddfSDavid du Colombier DUPLEX=false 61*7dd7cddfSDavid du Colombier case 1; 62*7dd7cddfSDavid du Colombier DUPLEX=true 63*7dd7cddfSDavid du Colombier } 643e12c5d1SDavid du Colombier PATCH=$PATCH' 65*7dd7cddfSDavid du Colombier%%BeginFeature: *Set DuplexMode 66*7dd7cddfSDavid du Colombier[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 67*7dd7cddfSDavid du Colombier << /Duplex '$DUPLEX' >> setpagedevice 68*7dd7cddfSDavid du Colombier } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse 69*7dd7cddfSDavid du Colombier } stopped cleartomark 70*7dd7cddfSDavid du Colombier%%EndFeature' 71219b2ee8SDavid du Colombier} 723e12c5d1SDavid du Colombierif (! ~ $#LAND 0 && ~ $LAND 1) 73*7dd7cddfSDavid du Colombier LAND='-tlandscape' 743e12c5d1SDavid du Colombierif (~ $LPCLASS *reverse*) { 753e12c5d1SDavid du Colombier switch ($REVERSE) { 763e12c5d1SDavid du Colombier case ''; 773e12c5d1SDavid du Colombier REVFLAG=1 783e12c5d1SDavid du Colombier case 1; 793e12c5d1SDavid du Colombier REVFLAG='' 803e12c5d1SDavid du Colombier } 813e12c5d1SDavid du Colombier} 823e12c5d1SDavid du Colombierswitch ($LPCLASS) { 83*7dd7cddfSDavid du Colombiercase *post100*; 84*7dd7cddfSDavid du Colombier DPI='-Z -D100' 85219b2ee8SDavid du Colombiercase *600dpi*; 86*7dd7cddfSDavid du Colombier DPI='-Z -D600' 87219b2ee8SDavid du Colombiercase *1200dpi*; 88*7dd7cddfSDavid du Colombier DPI='-Z -D1200' 893e12c5d1SDavid du Colombiercase *; 90*7dd7cddfSDavid du Colombier DPI='' 913e12c5d1SDavid du Colombier} 923e12c5d1SDavid du Colombierif (! ~ $COPIES '' -c*) COPIES=-c^$COPIES 933e12c5d1SDavid du Colombierif (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' } 943e12c5d1SDavid du Colombierswitch ($REVFLAG) { 953e12c5d1SDavid du Colombiercase 1; 963e12c5d1SDavid du Colombier echo $PATCH 973e12c5d1SDavid du Colombier switch ($OLIST) { 983e12c5d1SDavid du Colombier case ''; 99*7dd7cddfSDavid du Colombier eval dvips -q -f $DPI -r $LAND $COPIES $1 1003e12c5d1SDavid du Colombier case *; 1013e12c5d1SDavid du Colombier DVIFILE=/tmp/dv$pid.dvi 1023e12c5d1SDavid du Colombier dviselect -s $OLIST $1 > $DVIFILE 103*7dd7cddfSDavid du Colombier eval dvips -q -f $DPI -r $LAND $COPIES $DVIFILE 1043e12c5d1SDavid du Colombier rm -f $DVIFILE 1053e12c5d1SDavid du Colombier } 1063e12c5d1SDavid du Colombier $LPLIB/process/hpost </dev/null 1073e12c5d1SDavid du Colombiercase ''; 1083e12c5d1SDavid du Colombier $LPLIB/process/hpost </dev/null 1093e12c5d1SDavid du Colombier echo $PATCH 1103e12c5d1SDavid du Colombier switch ($OLIST) { 1113e12c5d1SDavid du Colombier case ''; 112*7dd7cddfSDavid du Colombier eval dvips -q -f $DPI $LAND $COPIES $1 1133e12c5d1SDavid du Colombier case *; 1143e12c5d1SDavid du Colombier DVIFILE=/tmp/dv$pid.dvi 1153e12c5d1SDavid du Colombier dviselect -s $OLIST $1 > $DVIFILE 116*7dd7cddfSDavid du Colombier eval dvips -q -f $DPI $LAND $COPIES $DVIFILE 1173e12c5d1SDavid du Colombier rm -f $DVIFILE 1183e12c5d1SDavid du Colombier } 1193e12c5d1SDavid du Colombier} 1203e12c5d1SDavid du Colombierexit 121