Initial lp.
This commit is contained in:
parent
9f1d53a09b
commit
6174642093
30 changed files with 1528 additions and 0 deletions
120
lp/process/dvipost
Executable file
120
lp/process/dvipost
Executable file
|
|
@ -0,0 +1,120 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
if (~ $DEBUG 1) flag x +
|
||||
# convert Tex dvi to PostScript
|
||||
PATCH='%!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^$COPIES
|
||||
if (! ~ $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/null
|
||||
case '';
|
||||
$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
|
||||
82
lp/process/g3post
Executable file
82
lp/process/g3post
Executable file
|
|
@ -0,0 +1,82 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# convert CCITT G3 Fax format to PostScript
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P$PATCH;
|
||||
|
||||
if (~ $MAG '') MAG=1
|
||||
if (~ $MAG [.0-9]*) MAG=-m^$MAG^,^`{echo $MAG '*' 2 | hoc}
|
||||
|
||||
if (! ~ $LAND '') LAND=-L
|
||||
if not LAND=()
|
||||
|
||||
g3p9bit | p9bitpost $MAG $LAND $PATCH | $LPLIB/process/hpost
|
||||
exit
|
||||
108
lp/process/generic
Executable file
108
lp/process/generic
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# Tries to determine what type of file you are printing and do the correct
|
||||
# thing with it.
|
||||
# It currently knows about images, troff intermediate, and ascii files.
|
||||
TMPFILE=/tmp/lp$pid
|
||||
fn sigexit { rm -f $TMPFILE; }
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
if (~ $LPCLASS *nohead*) NOHEAD=1
|
||||
if (~ $LPCLASS *duplex*) DUPLEX=1
|
||||
cat >$TMPFILE
|
||||
FILETYPE=`{file $TMPFILE}
|
||||
switch ($FILETYPE(2)) {
|
||||
case troff;
|
||||
switch ($LPCLASS) {
|
||||
case *Latin1* *post* *opost*; switch ($FILETYPE(5)) {
|
||||
# Latin1 is for compatibility with old research UNIX systems, doesn't work on Plan 9
|
||||
case Latin1 post; tcs -s -f utf -t latin1 < $TMPFILE |$LPLIB/process/dpost
|
||||
|
||||
case UTF; $LPLIB/process/tr2post < $TMPFILE
|
||||
}
|
||||
|
||||
case *; echo $FILETYPE(2) -T$FILETYPE(5) output is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case special;
|
||||
switch ($FILETYPE(4)) {
|
||||
case '#b'; switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/p9bitpost < $TMPFILE
|
||||
}
|
||||
|
||||
case *; echo $FILETYPE file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case Compressed plan old; # type is really 'Compressed image' or 'plan 9 image'
|
||||
# or 'old plan 9 image'
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/p9bitpost < $TMPFILE
|
||||
}
|
||||
case jpeg;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/jpgpost < $TMPFILE
|
||||
}
|
||||
|
||||
case GIF;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/gifpost < $TMPFILE
|
||||
}
|
||||
|
||||
case ccitt-g31;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/g3post < $TMPFILE
|
||||
}
|
||||
|
||||
# bitmap for research UNIX compatibility, does not work on Plan 9.
|
||||
case bitmap;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/bpost < $TMPFILE
|
||||
case *mhcc*; $LPLIB/process/bpost < $TMPFILE | $LPLIB/process/mhcc
|
||||
case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case tex;
|
||||
mv $TMPFILE $TMPFILE.dvi
|
||||
TMPFILE=$TMPFILE.dvi
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/dvipost $TMPFILE
|
||||
case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case postscript;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/post < $TMPFILE
|
||||
case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case HPJCL;
|
||||
switch ($LPCLASS) {
|
||||
case *HPJCL*; $LPLIB/process/noproc < $TMPFILE
|
||||
case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case daisy;
|
||||
switch ($LPDEST) {
|
||||
case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
case English short extended alef limbo [Aa]scii ASCII assembler c latin rc sh as mail email message/rfc822;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/ppost < $TMPFILE
|
||||
case *canon*; $LPLIB/process/can $* < $TMPFILE
|
||||
case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
|
||||
}
|
||||
|
||||
case tiff;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/tiffpost $TMPFILE
|
||||
case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
|
||||
}
|
||||
case PDF;
|
||||
switch ($LPCLASS) {
|
||||
case *post*; $LPLIB/process/pdfpost $TMPFILE
|
||||
case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
|
||||
}
|
||||
case empty;
|
||||
echo file is empty >[1=2]
|
||||
case cannot;
|
||||
echo cannot open file >[1=2]
|
||||
case *;
|
||||
echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
|
||||
}
|
||||
wait
|
||||
rv=$status
|
||||
rm -f $TMPFILE
|
||||
#exit $status
|
||||
exit
|
||||
83
lp/process/gifpost
Executable file
83
lp/process/gifpost
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# convert CCITT G3 Fax format to PostScript
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P$PATCH;
|
||||
|
||||
if (~ $MAG '') MAG=1
|
||||
if (~ $MAG [.0-9]*) MAG=-m^$MAG
|
||||
|
||||
if (! ~ $LAND '') LAND=-L
|
||||
if not LAND=()
|
||||
|
||||
/$cputype/bin/gif -t | /$cputype/bin/aux/p9bitpost $MAG $LAND $PATCH | $LPLIB/process/hpost
|
||||
exit
|
||||
|
||||
143
lp/process/hpost
Executable file
143
lp/process/hpost
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
REVFLAG=''
|
||||
if (~ $LPCLASS *reverse*) {
|
||||
switch ($REVERSE) {
|
||||
case '';
|
||||
REVFLAG=1
|
||||
case 1;
|
||||
REVFLAG=''
|
||||
}
|
||||
}
|
||||
if (! ~ $REVFLAG '')
|
||||
postreverse
|
||||
|
||||
if (~ $NOHEAD '') {
|
||||
DATE=`{date}
|
||||
face='FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'
|
||||
facedom=`{awk '{ if(match("'$LPMACHID'", $1)) {print $2; exit}}' $PLAN9/face/.machinelist}
|
||||
if (~ $#facedom 0) facedom=$LPMACHID
|
||||
|
||||
facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x4/.dict}
|
||||
facedepth=4
|
||||
|
||||
if (~ $#facefile 0) {
|
||||
facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x2/.dict}
|
||||
facedepth=2
|
||||
}
|
||||
|
||||
if (~ $#facefile 0) {
|
||||
facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x1/.dict}
|
||||
facedepth=1
|
||||
}
|
||||
|
||||
if (~ $#facefile 0) {facefile=u/unknown.1; facedepth=1}
|
||||
facefile=$PLAN9/face/48x48x$facedepth/$facefile
|
||||
|
||||
if (! ~ $#facefile 0 1)
|
||||
facefile=$facefile(1)
|
||||
|
||||
if (~ $#facefile 0 || ! test -f $facefile ) {facefile=$PLAN9/face/48x48x2/u/unknown.1; facedepth=2}
|
||||
if (test -r $facefile ) {
|
||||
switch($facedepth){
|
||||
case 1 2
|
||||
face=`{cat $facefile |
|
||||
sed -e 's/0x//g' -e 's/, *//g' |
|
||||
tr 0123456789abcdef fedcba9876543210 };
|
||||
case 4
|
||||
face=`{iconv -u -c k4 $facefile |
|
||||
dd -bs 60 -skip 1 >[2]/dev/null |
|
||||
xd -b | sed 's/^[^ ]+ //;s/ //g' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# We have to make sure the face information is set before rc sees the HERE file
|
||||
# so the cat has to be in a separate if statement. This is an rc bug.
|
||||
if (~ $NOHEAD '') cat <<EOF
|
||||
%!PS-Adobe-2.0 div 112 page header - research!pg
|
||||
/banner {
|
||||
/saveobj save def
|
||||
erasepage initgraphics
|
||||
/#copies 1 def
|
||||
/inch {72 mul} bind def
|
||||
/pageborder {
|
||||
25 747 moveto
|
||||
590 747 lineto
|
||||
590 25 lineto
|
||||
25 25 lineto
|
||||
closepath
|
||||
2 setlinewidth
|
||||
0 setgray
|
||||
stroke
|
||||
} def
|
||||
|
||||
/topborder {
|
||||
25 773 moveto
|
||||
590 773 lineto
|
||||
590 747 lineto
|
||||
25 747 lineto
|
||||
closepath
|
||||
2 setlinewidth
|
||||
0 setgray
|
||||
stroke
|
||||
} def
|
||||
|
||||
/toptext {
|
||||
120 756 moveto
|
||||
/Courier-Bold findfont 14 scalefont setfont
|
||||
($LPUSERID $DATE) show
|
||||
} def
|
||||
|
||||
/prface {
|
||||
gsave
|
||||
translate rotate scale
|
||||
setgray
|
||||
48 48 $facedepth [48 0 0 -48 0 48] {<$face>} image
|
||||
grestore
|
||||
} def
|
||||
EOF
|
||||
if (~ $NOHEAD '') switch ($LPCLASS) {
|
||||
case *hp4simx*;
|
||||
echo '
|
||||
%% set the default papertray to be the lower tray for HP4siMX printers
|
||||
statusdict begin defaultpapertray end 1 ne {
|
||||
statusdict begin
|
||||
1 setdefaultpapertray
|
||||
end
|
||||
} if'
|
||||
}
|
||||
if (~ $NOHEAD '') cat <<EOF
|
||||
statusdict /setduplexmode known {statusdict begin false setduplexmode end} if
|
||||
statusdict begin /manualfeed false def end
|
||||
pageborder
|
||||
topborder
|
||||
toptext
|
||||
0 14 14 0 94 752 prface
|
||||
.3 180 180 -90 3.0 inch 10.2 inch prface
|
||||
showpage
|
||||
saveobj
|
||||
restore
|
||||
} bind def
|
||||
banner
|
||||
EOF
|
||||
|
||||
if (~ $REVFLAG '') cat
|
||||
exit ''
|
||||
82
lp/process/jpgpost
Executable file
82
lp/process/jpgpost
Executable file
|
|
@ -0,0 +1,82 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# convert JPG to PostScript
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P$PATCH;
|
||||
|
||||
if (~ $MAG '') MAG=1
|
||||
if (~ $MAG [.0-9]*) MAG=-m^$MAG
|
||||
|
||||
if (! ~ $LAND '') LAND=-L
|
||||
if not LAND=()
|
||||
|
||||
9 jpg -t9 | p9bitpost $MAG $LAND $PATCH -p 32 26.17 | $LPLIB/process/hpost
|
||||
exit
|
||||
3
lp/process/noproc
Executable file
3
lp/process/noproc
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# No processing, copy file from input to output
|
||||
cat
|
||||
83
lp/process/p9bitpost
Executable file
83
lp/process/p9bitpost
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# convert plan 9 image to PostScript
|
||||
if (~ $DEBUG 1) flag x +
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P$PATCH;
|
||||
if (! ~ $LAND '') LAND=-L
|
||||
if not LAND=()
|
||||
# if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES
|
||||
if (! ~ $MAG '') MAG=-m^$MAG
|
||||
if (~ $MAG '') MAG=()
|
||||
# if (! ~ $NPAG '' -n*) NPAG=-n^$NPAG
|
||||
# if (! ~ $XOFF '' -x*) XOFF=-x^$XOFF
|
||||
# if (! ~ $YOFF '' -y*) YOFF=-y^$YOFF
|
||||
p9bitpost $MAG $LAND $PATCH | $LPLIB/process/hpost
|
||||
exit
|
||||
78
lp/process/pdfgs
Executable file
78
lp/process/pdfgs
Executable file
|
|
@ -0,0 +1,78 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
|
||||
#
|
||||
# we don't go through postscript, because to
|
||||
# get to postscript, we send the pdf through gs!
|
||||
# much easier to just go directly.
|
||||
#
|
||||
|
||||
# usage: pdfgs pdffile [gsdev]
|
||||
|
||||
switch($#*) {
|
||||
case 2
|
||||
GSDEVICE=$2
|
||||
case 1
|
||||
GSDEVICE=`{echo $LPCLASS | sed 's/(.*\+)?gs!([^+]*)(\+.*)?/\2/'}
|
||||
case *
|
||||
echo 'usage: pdfgs pdffile [gsdev]' >[1=2]
|
||||
}
|
||||
|
||||
GSTMPFILE=/tmp/pdf^$pid
|
||||
GSOPT=('-sDEVICE='$GSDEVICE '-sOutputFile='^$GSTMPFILE -dSAFER -dNOPAUSE -dQUIET -dBATCH -dNOPAUSE)
|
||||
|
||||
#
|
||||
# RSC: pswrite produces weird overbars on various
|
||||
# letters, most notably Times-Roman A and h, unless
|
||||
# we use LanguageLevel=1. This doesn't seem to be
|
||||
# constrained to hp4simx printers, so just use LanguageLevel 1
|
||||
# all the time.
|
||||
#
|
||||
|
||||
#if(~ $dev pswrite && ~ $LPCLASS *hp4simx*)
|
||||
# GSOPT=($GSOPT '-dLanguageLevel=1')
|
||||
if(~ $GSDEVICE pswrite)
|
||||
GSOPT=($GSOPT '-dLanguageLevel=1')
|
||||
|
||||
if(~ $OLIST '')
|
||||
gs $GSOPT $1
|
||||
if not {
|
||||
PGLIST=`{echo $OLIST | sed 's/-o//;s/,/ /g;s/ / /g' | tr -cd '0-9 -'}
|
||||
GSPGLIST=()
|
||||
for(i in $PGLIST){
|
||||
switch($i){
|
||||
case -*
|
||||
GSPGLIST=($GSPGLIST `{seq 1 `{echo $i|tr -d '-'}})
|
||||
case *-
|
||||
# BUG assume 100 >= number of pages
|
||||
GSPGLIST=($GSPGLIST `{seq `{echo $i|tr -d '-'} 100})
|
||||
case *-*
|
||||
GSPGLIST=($GSPGLIST `{seq `{echo $i|tr '-' ' '}})
|
||||
case *
|
||||
GSPGLIST=($GSPGLIST $i)
|
||||
}
|
||||
}
|
||||
GSPGLIST=$"GSPGLIST
|
||||
echo '
|
||||
/Page null def
|
||||
/Page# 0 def
|
||||
/PDFSave null def
|
||||
/DSCPageCount 0 def
|
||||
/DoPDFPage {dup /Page# exch store pdfgetpage pdfshowpage} def
|
||||
GS_PDF_ProcSet begin
|
||||
pdfdict begin
|
||||
('^$1^') (r) file pdfopen begin
|
||||
/npage pdfpagecount def
|
||||
['^$GSPGLIST^']
|
||||
{
|
||||
dup dup
|
||||
1 ge exch npage le and
|
||||
{ DoPDFPage }
|
||||
{ pop }
|
||||
ifelse
|
||||
} forall
|
||||
' | gs $GSOPT - >/dev/null >[2=1]
|
||||
}
|
||||
|
||||
cat $GSTMPFILE
|
||||
rm -f $GSTMPFILE
|
||||
exit ''
|
||||
76
lp/process/pdfpost
Executable file
76
lp/process/pdfpost
Executable file
|
|
@ -0,0 +1,76 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# convert PDF output to PostScript
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%!PS
|
||||
%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp
|
||||
'
|
||||
echo $PATCH
|
||||
|
||||
pdfgs $1 pswrite | $LPLIB/process/hpost
|
||||
exit ''
|
||||
68
lp/process/post
Executable file
68
lp/process/post
Executable file
|
|
@ -0,0 +1,68 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%!PS
|
||||
%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' ignored >[1=2]
|
||||
}
|
||||
}
|
||||
#if (! ~ $#DUPLEX 0) {
|
||||
# if (~ $DUPLEX 1 )
|
||||
# PATCH=$PATCH'
|
||||
#statusdict /setduplexmode known {statusdict begin true setduplexmode end} if';
|
||||
# if (~ $DUPLEX 0 )
|
||||
# PATCH=$PATCH'
|
||||
#statusdict /setduplexmode known {statusdict begin false setduplexmode end} if';
|
||||
#}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp
|
||||
'
|
||||
|
||||
{ echo $PATCH; psextract } | $LPLIB/process/hpost
|
||||
|
||||
98
lp/process/ppost
Executable file
98
lp/process/ppost
Executable file
|
|
@ -0,0 +1,98 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
# converts a regular ascii file to PostScript
|
||||
if (! ~ $DEBUG '') flag x +
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp
|
||||
'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P''''$PATCH'''';
|
||||
switch ($LAND) {
|
||||
case -p*;
|
||||
case ''; LAND=-pp
|
||||
case 1; LAND=-pl
|
||||
}
|
||||
if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES
|
||||
switch ($FONT) {
|
||||
case ''; FONT=-f'Courier'
|
||||
case -f*;
|
||||
case *; FONT=-f$FONT
|
||||
}
|
||||
switch ($POINT) {
|
||||
case ''; POINT=-s10
|
||||
case -s*;
|
||||
case *; POINT=-s$POINT
|
||||
}
|
||||
if (! ~ $LINES '' -l*) LINES=-l^$LINES;
|
||||
if (! ~ $MAG '' -m*) MAG=-m^$MAG;
|
||||
if (! ~ $NPAG '' -n*) NPAG=-n^$NPAG;
|
||||
if (! ~ $XOFF '' -x*) XOFF=-x`{echo $XOFF + .4|hoc};
|
||||
if not XOFF=-x.4
|
||||
if (! ~ $YOFF '' -y*) YOFF=-y^$YOFF;
|
||||
eval $PLAN9/bin/text2post $FONT $XOFF $YOFF $COPIES $LINES $MAG $NPAG $POINT $LAND $OLIST $PATCH | $LPLIB/process/hpost
|
||||
exit
|
||||
60
lp/process/psextract
Executable file
60
lp/process/psextract
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
|
||||
# extract pages $OLIST from postscript on stdin
|
||||
|
||||
if(~ $OLIST '')
|
||||
exec cat
|
||||
|
||||
awk '
|
||||
BEGIN {
|
||||
x=ENVIRON["OLIST"];
|
||||
gsub(/^-o/, "", x);
|
||||
na = split(x, a, ",");
|
||||
header = 1;
|
||||
goodpage = 0;
|
||||
}
|
||||
|
||||
header || goodpage {
|
||||
print
|
||||
}
|
||||
|
||||
/^%%EndSetup[ ]*$/ { header = 0; next }
|
||||
|
||||
/^%%Page:/ {
|
||||
header = 0;
|
||||
p=$2+0;
|
||||
goodpage = 0;
|
||||
for(i=1; i<=na; i++){
|
||||
if(aa=match(a[i], "-")){
|
||||
low=substr(a[i], 1, RSTART);
|
||||
high=substr(a[i], RSTART+RLENGTH);
|
||||
if(low == "")
|
||||
low = 0;
|
||||
else
|
||||
low = low+0;
|
||||
if(high == "")
|
||||
high = 100000;
|
||||
else
|
||||
high = high+0;
|
||||
if(low <= p && p <= high){
|
||||
goodpage = 1;
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
if(a[i] == p){
|
||||
goodpage = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/^%%EndPage[ ]*$/ {
|
||||
goodpage = 0;
|
||||
}
|
||||
|
||||
/^%%Trailer[ ]*$/ {
|
||||
goodpage = 1;
|
||||
}
|
||||
|
||||
'
|
||||
86
lp/process/tr2post
Executable file
86
lp/process/tr2post
Executable file
|
|
@ -0,0 +1,86 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
if (~ $DEBUG 1) flag x +
|
||||
# convert troff output to PostScript
|
||||
PATCH='%%Patch from lp'
|
||||
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 -P*;
|
||||
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];
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select InputTray
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< '$i' << /MediaType (tray'$i') >> >>
|
||||
<< /MediaType (tray'$i') >> setpagedevice
|
||||
} {statusdict begin '$i' setpapertray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case 11x17 [Ll]edger;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Ledger
|
||||
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
|
||||
<< /PageSize [792 1224] >> setpagedevice
|
||||
} {statusdict begin '$i'tray end} ifelse
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case transparency vg viewgraph;
|
||||
PATCH=$PATCH'
|
||||
%%BeginFeature: *Select Transparency
|
||||
[{ << /MediaType (Transparency) >> setpagedevice
|
||||
} stopped cleartomark
|
||||
%%EndFeature'
|
||||
case *;
|
||||
echo illegal option ''''-i $i'''' >[1=2]
|
||||
}
|
||||
}
|
||||
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'
|
||||
}
|
||||
PATCH=$PATCH'
|
||||
%%EndPatch from lp
|
||||
'
|
||||
if (! ~ $PATCH '' -P*)
|
||||
PATCH=-P''''$PATCH'''';
|
||||
switch ($LAND) {
|
||||
case -p*;
|
||||
case ''; LAND=-pp
|
||||
case 1; LAND=-pl
|
||||
}
|
||||
if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES
|
||||
if (! ~ $MAG '' -m*) MAG=-m^$MAG
|
||||
if (! ~ $NPAG '' -n*) NPAG=-n^$NPAG
|
||||
if (! ~ $XOFF '' -x*) XOFF=-x^$XOFF
|
||||
if (! ~ $YOFF '' -y*) YOFF=-y^$YOFF
|
||||
eval tr2post $XOFF $YOFF $COPIES $MAG $NPAG $LAND $OLIST $PATCH | $LPLIB/process/hpost
|
||||
exit
|
||||
Loading…
Add table
Add a link
Reference in a new issue