plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

dvipost (3139B)


      1 #!/usr/local/plan9/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