xref: /plan9/sys/lib/lp/process/dvipost (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
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