xref: /plan9/sys/lib/lp/process/pdfpost (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1#!/bin/rc
2# convert PDF output to PostScript
3if (! ~ $DEBUG '') flag x +
4PATCH='%!PS
5%%Patch from lp'
6switch ($LPCLASS) {
7case *hp4simx*;
8	PATCH=$PATCH'
9%% set the default papertray to be the lower tray for HP4siMX printers
10	statusdict begin defaultpapertray end 1 ne {
11		statusdict begin
12			1 setdefaultpapertray
13		end
14	} if'
15}
16for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) {
17	switch ($i) {
18	case -P*;
19	case man manual manualfeed;
20		PATCH=$PATCH'
21%%BeginFeature: *Select ManualFeed
22[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
23    << /ManualFeed true >> setpagedevice
24   } {statusdict begin /manualfeed true def end} ifelse
25 } stopped cleartomark
26%%EndFeature'
27	case simplex;
28		DUPLEX=0
29	case [0-9];
30		PATCH=$PATCH'
31%%BeginFeature: *Select InputTray
32[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
33    << /MediaType (tray'$i') >> setpagedevice
34   } {statusdict begin '$i' setpapertray end} ifelse
35 } stopped cleartomark
36%%EndFeature'
37	case 11x17 [Ll]edger;
38		PATCH=$PATCH'
39%%BeginFeature: *Select Ledger
40[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
41    << /PageSize [792 1224] >> setpagedevice
42   } {statusdict begin '$i'tray end} ifelse
43 } stopped cleartomark
44%%EndFeature'
45	case transparency vg viewgraph;
46		PATCH=$PATCH'
47%%BeginFeature: *Select Transparency
48[{ << /MediaType (Transparency) >> setpagedevice
49 } stopped cleartomark
50%%EndFeature'
51	case *;
52		echo illegal option ''''-i $i'''' >[1=2]
53	}
54}
55if (! ~ $#DUPLEX 0) {
56	switch ($DUPLEX) {
57	case 0;
58		DUPLEX=false
59	case 1;
60		DUPLEX=true
61	}
62	PATCH=$PATCH'
63%%BeginFeature: *Set DuplexMode
64[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
65    << /Duplex '$DUPLEX'  >> setpagedevice
66  } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse
67 } stopped cleartomark
68%%EndFeature'
69}
70PATCH=$PATCH'
71%%EndPatch from lp
72'
73echo $PATCH
74
75pdfgs $1 pswrite | $LPLIB/process/hpost
76exit ''
77