dvipost (3139B)
1 #!/usr/local/plan9/bin/rc 2 if (~ $DEBUG 1) flag x + 3 # convert Tex dvi to PostScript 4 PATCH='%!PS-Adobe-2.0' 5 switch ($LPCLASS) { 6 case *hp4simx*; 7 PATCH=$PATCH' 8 %% set the default papertray to be the lower tray for HP4siMX printers 9 statusdict begin defaultpapertray end 1 ne { 10 statusdict begin 11 1 setdefaultpapertray 12 end 13 } if' 14 } 15 for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) { 16 switch ($i) { 17 case man manual manualfeed; 18 PATCH=$PATCH' 19 %%BeginFeature: *Select ManualFeed 20 [{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 21 << /ManualFeed true >> setpagedevice 22 } {statusdict begin /manualfeed true def end} ifelse 23 } stopped cleartomark 24 %%EndFeature' 25 case simplex; 26 DUPLEX=0 27 case [0-9]; 28 switch ($LPCLASS) { 29 case *post2*; 30 switch ($i) { 31 case 0; PATCH=$PATCH' 32 systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 33 {/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 34 { 35 currentpagedevice/InputAttributes get {0 get} stopped 36 {pop pop} {2 dict dup /InputAttributes 1 dict dup 37 /Priority[0] put put dup /TraySwitch false put setpagedevice} ifelse 38 false (0) startjob pop 39 } if' 40 case 1; PATCH=$PATCH' 41 systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 42 {/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 43 { 44 currentpagedevice/InputAttributes get {1 get} stopped 45 {pop pop} {2 dict dup /InputAttributes 1 dict dup 46 /Priority[1] put put dup /TraySwitch false put setpagedevice} ifelse 47 false (0) startjob pop 48 } if' 49 } 50 case *; PATCH=$PATCH' 51 statusdict begin $i setpapertray end' 52 } 53 case 11x17 ledger; PATCH=$PATCH' 54 statusdict begin '$i'tray end' 55 } 56 } 57 if (! ~ $#DUPLEX 0) { 58 switch ($DUPLEX) { 59 case 0; 60 DUPLEX=false 61 case 1; 62 DUPLEX=true 63 } 64 PATCH=$PATCH' 65 %%BeginFeature: *Set DuplexMode 66 [{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 67 << /Duplex '$DUPLEX' >> setpagedevice 68 } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse 69 } stopped cleartomark 70 %%EndFeature' 71 } 72 if (! ~ $#LAND 0 && ~ $LAND 1) 73 LAND='-tlandscape' 74 if (~ $LPCLASS *reverse*) { 75 switch ($REVERSE) { 76 case ''; 77 REVFLAG=1 78 case 1; 79 REVFLAG='' 80 } 81 } 82 switch ($LPCLASS) { 83 case *post100*; 84 DPI='-Z -D100' 85 case *600dpi*; 86 DPI='-Z -D600' 87 case *1200dpi*; 88 DPI='-Z -D1200' 89 case *; 90 DPI='' 91 } 92 if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES 93 if (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' } 94 switch ($REVFLAG) { 95 case 1; 96 echo $PATCH 97 switch ($OLIST) { 98 case ''; 99 eval dvips -q -f $DPI -r $LAND $COPIES $1 100 case *; 101 DVIFILE=/tmp/dv$pid.dvi 102 dviselect -s $OLIST $1 > $DVIFILE 103 eval dvips -q -f $DPI -r $LAND $COPIES $DVIFILE 104 rm -f $DVIFILE 105 } 106 $LPLIB/process/hpost </dev/null 107 case ''; 108 $LPLIB/process/hpost </dev/null 109 echo $PATCH 110 switch ($OLIST) { 111 case ''; 112 eval dvips -q -f $DPI $LAND $COPIES $1 113 case *; 114 DVIFILE=/tmp/dv$pid.dvi 115 dviselect -s $OLIST $1 > $DVIFILE 116 eval dvips -q -f $DPI $LAND $COPIES $DVIFILE 117 rm -f $DVIFILE 118 } 119 } 120 exit