xref: /plan9/sys/lib/lp/process/dpost (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1#!/bin/rc
2if (~ $DEBUG 1) flag x +
3# convert troff output to PostScript
4PATCH='%%Patch from lp'
5switch ($LPCLASS) {
6case *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}
15for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) {
16	switch ($i) {
17	case -P*;
18	case man manual manualfeed;
19		PATCH=$PATCH'
20%%BeginFeature: *Select ManualFeed
21[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
22    << /ManualFeed true >> setpagedevice
23   } {statusdict begin /manualfeed true def end} ifelse
24 } stopped cleartomark
25%%EndFeature'
26	case simplex;
27		DUPLEX=0
28	case [0-9];
29		PATCH=$PATCH'
30%%BeginFeature: *Select InputTray
31[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
32    << /MediaType (tray'$i') >> setpagedevice
33   } {statusdict begin '$i' setpapertray end} ifelse
34 } stopped cleartomark
35%%EndFeature'
36	case 11x17 [Ll]edger;
37		PATCH=$PATCH'
38%%BeginFeature: *Select Ledger
39[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
40    << /PageSize [792 1224] >> setpagedevice
41   } {statusdict begin '$i'tray end} ifelse
42 } stopped cleartomark
43%%EndFeature'
44	case transparency vg viewgraph;
45		PATCH=$PATCH'
46%%BeginFeature: *Select Transparency
47[{ << /MediaType (Transparency) >> setpagedevice
48 } stopped cleartomark
49%%EndFeature'
50	case *;
51		echo illegal option ''''-i $i'''' >[1=2]
52	}
53}
54if (! ~ $#DUPLEX 0) {
55	switch ($DUPLEX) {
56	case 0;
57		DUPLEX=false
58	case 1;
59		DUPLEX=true
60	}
61	PATCH=$PATCH'
62%%BeginFeature: *Set DuplexMode
63[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
64    << /Duplex '$DUPLEX'  >> setpagedevice
65  } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse
66 } stopped cleartomark
67%%EndFeature';
68}
69if (! ~ $PATCH '' -P*)
70	PATCH=-P''''$PATCH'''';
71switch ($LAND) {
72case -p*;
73case ''; LAND=-pp
74case 1;	LAND=-pl
75}
76if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES
77if (! ~ $MAG '' -m*) MAG=-m^$MAG
78if (! ~ $NPAG '' -n*) NPAG=-n^$NPAG
79if (! ~ $XOFF '' -x*) XOFF=-x^$XOFF
80if (! ~ $YOFF '' -y*) YOFF=-y^$YOFF
81eval /$cputype/bin/aux/dpost -e2 -w0.5 $XOFF $YOFF $COPIES $MAG $NPAG $LAND $OLIST $PATCH | $LPLIB/process/hpost
82exit
83