diff options
Diffstat (limited to 'Master/xemtex/gslib/pj-gs.sh')
-rw-r--r-- | Master/xemtex/gslib/pj-gs.sh | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/Master/xemtex/gslib/pj-gs.sh b/Master/xemtex/gslib/pj-gs.sh new file mode 100644 index 00000000000..7f8eaa78c85 --- /dev/null +++ b/Master/xemtex/gslib/pj-gs.sh @@ -0,0 +1,289 @@ +#!/bin/sh +# $Id: pj-gs.sh,v 1.1 2000/03/09 08:40:40 lpd Exp $ + +# PaintJet driver script for Ghostscript, +# created by Philippe-Andre Prindeville <philipp@res.enst.fr> + +# PCL level 1 interface +# +#=======================================================================# +# OPTIONS RECOGNIZED: ( all may be preceded with a "-" ) # +# NOTE: Options marked with a "*" before their descriptions # +# are provided for backward compatibility with the # +# former hp2225a, hp2227a and hp3630a printer models - # +# these models have become links to this model. Consult # +# your printer reference manual to determine which # +# options are valid for your particular printer. # +# # +# Horizontal Pitch Selection: # +# c compressed print mode # +# e * expanded print pitch # +# 10 * 10 cpi (Pica print pitch) # +# (expanded compressed on thinkjet and quietjet)# +# 12 * 12 cpi (Elite print pitch) # +# # +# Print Quality Selection # +# q | lq * near letter quality # +# # +# Font Selection # +# b | bold * set font stroke weight to bold # +# # +# Output filtering: (Default Cooked) # +# r | raw raw mode for plotting mode etc. # +# # +# Other: # +# nb do not output banner page (to save paper) # +# # +# NOTE: * = NOT OFFICIAL PCL LEVEL 1 OPTIONS, USE OF # +# THESE OPTIONS MAY OR MAY NOT PRODUCE # +# DESIRED RESULTS. # +#=======================================================================# + +PATH="/bin:/usr/bin:/usr/lib:/usr/local/bin" +export PATH + +# set up redirection of stderr +log=/usr/spool/lp/log +exec 2>>$log + +# sec_class=`getconf SECURITY_CLASS` +sec_class= +if [ $? -ne 0 ] +then + echo "getconf SECURITY_CLASS failed" +fi + +# Save the arguments to the model +printer=`basename $0` + +if [ "$sec_class" = "2" ] # B1 Trusted System +then + reqid=$1 + user=$2 + dev=$3 + title=$4 + copies=$5 + options=$6 +else + reqid=$1 + user=$2 + title=$3 + copies=$4 + options=$5 +fi + + +# Definitions of functions used within this script +do_banner() +{ + # Print the standard header + x="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" + echo "$x\n$x\n$x\n$x\n" + banner `echo $user` + echo "\n" + user=`pwget -n $user | line | cut -d: -f5` + if [ -n "$user" ] + then + echo "User: $user\n" + else + echo "\n" + fi + echo "Request id: $reqid Printer: `basename $0`\n" + date + echo "\n" + if [ -n "$title" ] + then + banner "$title" + fi + echo "\014\r\c" +} + +# Set up interface +if [ -t 1 ] +then + stty 9600 opost onlcr -parenb cs8 ixon -istrip clocal tab3 <&1 2>/dev/null +else + slp -n -k 2>/dev/null +fi + +# Handle disable and cancel traps. +trap "echo 'Terminated: $reqid' >> $log; trap 15; kill -15 0; exit 0 " 15 + +# Set up printer default modes +echo "\033&k0S\c" # reset pitches +echo "\033(s0B\033)s0B\c" # reset stroke weights +echo "\033&d@\c" # disable auto-underline +echo "\033&l6D\c" # reset to 6 lpi +echo "\033(s0Q\c" # reset print quality +echo "\033&v0S\c" # reset color +echo "\033&k2G\c" # Set line termination mode + + +# Determine which options have been invoked +pitch="def" +weight="def" +quality="def" +# outputmode="cooked" +outputmode="raw" +# banner="yes" +banner= + +for i in $options +do + case "$i" in + -c | c) # compressed print + pitch="c";; + + -e | e) # expanded print + pitch="e";; + + -10 | 10) # pitch set to 10 cpi + pitch="10";; + + -12 | 12) # pitch set to 12 cpi + pitch="12";; + + -q | q | -lq | lq) # near letter quality + quality=1;; + + -b | b | -bold | bold) # set font weight to bold + weight=1;; + + r | raw) # raw mode for binary output to printer + outputmode="raw";; + + -nb | nb) # do not output banner page + banner="";; + + esac +done + +shift; shift; shift; shift; shift + +if [ "$sec_class" = "2" ] # B1 Trusted System +then + shift + files="$*" + Nofilter= Nolabel= + set -- `getopt fl $options` + if [ $? != 0 ] + then + exit 2 + fi + + for opt in $* + do + shift + case $opt in + -f) Nofilter=$opt ;; + -l) Nolabel=$opt ;; + --) break ;; + esac + done + + # Print the sensitivity label of the process + echo "$x\n$x\n" + /usr/lib/lpbanner -j $reqid -t "$title" -u $user -p PCL1 -n $printer -d $dev $files + echo "\n$x\n$x" + +else + # Assume that the rest of the arguments are files + files="$*" + # print the banner if nb option not specified + if [ -n "$banner" ] + then + do_banner + fi +fi + +# Print the spooled files +i=1 +while [ $i -le $copies ] +do + for file in $files + do + + # If raw mode, turn off output processing, + # set for no tab expansion + # If cooked mode, uncomment the cooked case if it is + # desired not to print on the page perforations + case "$outputmode" in + raw) if [ -t 1 ] + then + stty raw 9600 -opost -parenb cs8 ixon -istrip clocal tab0 <&1 2>/dev/null + else + slp -r 2>/dev/null + fi + echo "\033&k0G";; # Reset line termination mode + # cooked) echo "\033&l1L\r\c";; + esac + + case "$pitch" in + def);; + c) echo "\033&k2S\r\c";; + e) echo "\033&k1S\r\c";; + 10) echo "\033&k3S\r\c";; + 12) echo "\033&k0S\r\c" + echo "\033&k4S\r\c";; + esac + + case "$quality" in + def);; + *) echo "\033(s${quality}Q\r\c";; + esac + + case "$weight" in + def) echo "\033(s0B\033)s0B\r\c";; + *) echo "\033(s${weight}B\r\c";; + esac + + if [ "$sec_class" = "2" ] # B1 Trusted System + then + /usr/lib/lprcat $Nofilter $Nolabel $file PCL1 $user $dev + else + type=`file $file | sed 's/^[^:]*..//'` + case "$type" in + postscript*) +# +# We could do the following, but this would leave gs with a rather large +# image in memory for (possibly) several minutes. Better to use and +# intermediate file, since cat is "lightweight"... +# +# gs -q -sDEVICE=paintjet -r180 -sOutputFile=- -dDISKFONTS -dNOPAUSE - < $file 2>/tmp/sh$$ + + gs -q -sDEVICE=paintjet -r180 -sOutputFile=/tmp/pj$$ -dDISKFONTS -dNOPAUSE - < $file 1>2 + cat /tmp/pj$$ + rm /tmp/pj$$ + needff= + ;; + *) cat "$file" 2>/tmp/sh$$ + needff=1 + ;; + esac + + if [ -s /tmp/sh$$ ] + then +# cat /tmp/sh$$ # output any errors + cat /tmp/sh$$ 1>2 # output any errors + fi + rm -f /tmp/sh$$ + if [ $needff ]; then echo "\014\r\c"; fi + fi + + echo "\033&k0S\r\c" # reset pitches + echo "\033(s0B\033)s0B\r\c" # reset stroke weights + echo "\033&d@\r\c" # disable auto-underline + echo "\033&l6D\r\c" # reset to 6 lpi + echo "\033(s0Q\c" # reset print quality + echo "\033&v0S\c" # reset color + done + i=`expr $i + 1` + done + +# Insure all buffers are flushed to printer +if [ -t 1 ] +then + stty 9600 opost onlcr -parenb cs8 ixon -istrip clocal tab3 <&1 2>/dev/null +fi + +exit 0 |