120 lines · 3.0 KB · Text
RawDownload
#!/bin/rcif (~ $DEBUG 1) flag x +# convert Tex dvi to PostScriptPATCH='%!PS-Adobe-2.0'switch ($LPCLASS) {case *hp4simx*;	PATCH=$PATCH'%% set the default papertray to be the lower tray for HP4siMX printers	statusdict begin defaultpapertray end 1 ne {		statusdict begin			1 setdefaultpapertray		end	} if'}for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) {	switch ($i) {	case man manual manualfeed;		PATCH=$PATCH'%%BeginFeature: *Select ManualFeed[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {    << /ManualFeed true >> setpagedevice   } {statusdict begin /manualfeed true def end} ifelse } stopped cleartomark%%EndFeature'	case simplex;		DUPLEX=0	case [0-9];		switch ($LPCLASS) {		case *post2*;			switch ($i) {			case 0; PATCH=$PATCH'systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse{  currentpagedevice/InputAttributes get {0 get} stopped  {pop pop} {2 dict dup /InputAttributes 1 dict dup  /Priority[0] put put dup /TraySwitch false put setpagedevice} ifelse  false (0) startjob pop} if'			case 1; PATCH=$PATCH'systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse{  currentpagedevice/InputAttributes get {1 get} stopped  {pop pop} {2 dict dup /InputAttributes 1 dict dup  /Priority[1] put put dup /TraySwitch false put setpagedevice} ifelse  false (0) startjob pop} if'			}		case *;	PATCH=$PATCH'statusdict begin $i setpapertray end'		}	case 11x17 ledger;	PATCH=$PATCH'statusdict begin '$i'tray end'	}}if (! ~ $#DUPLEX 0) {	switch ($DUPLEX) {	case 0;		DUPLEX=false	case 1;		DUPLEX=true	}	PATCH=$PATCH'%%BeginFeature: *Set DuplexMode[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {    << /Duplex '$DUPLEX'  >> setpagedevice  } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse } stopped cleartomark%%EndFeature'}if (! ~ $#LAND 0 && ~ $LAND 1)	LAND='-tlandscape'if (~ $LPCLASS *reverse*) {	switch ($REVERSE) {	case '';		REVFLAG=1	case 1;		REVFLAG=''	}}switch ($LPCLASS) {case *post100*;	DPI='-Z -D100'case *600dpi*;	DPI='-Z -D600'case *1200dpi*;	DPI='-Z -D1200'case *;	DPI=''}if (! ~ $COPIES '' -c*) COPIES=-c^$COPIESif (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' }switch ($REVFLAG) {case 1;	echo $PATCH	switch ($OLIST) {	case '';		eval dvips -q -f $DPI -r $LAND $COPIES $1	case *;		DVIFILE=/tmp/dv$pid.dvi		dviselect -s $OLIST $1 > $DVIFILE		eval dvips -q -f $DPI -r $LAND $COPIES $DVIFILE		rm -f $DVIFILE	}	$LPLIB/process/hpost </dev/nullcase '';	$LPLIB/process/hpost </dev/null	echo $PATCH	switch ($OLIST) {	case '';		eval dvips -q -f $DPI $LAND $COPIES $1	case *;		DVIFILE=/tmp/dv$pid.dvi		dviselect -s $OLIST $1 > $DVIFILE		eval dvips -q -f $DPI $LAND $COPIES $DVIFILE		rm -f $DVIFILE	}}exit