]> git.lizzy.rs Git - plan9front.git/blob - sys/lib/lp/process/dvipost
rootstub: create /sys/src/pkg and /sys/lib/pkg directories
[plan9front.git] / sys / lib / lp / process / dvipost
1 #!/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