1#!/bin/sh 2# Patrick Powell 3# Sat Aug 19 20:40:33 PDT 1995 4# 5# psbanner [-FLAGvalue]* [accountingfile] 6# 7# Important flags: Postscript Variable 8# -j number - job number /Seq 9# -J banner - banner /Job 10# -h host - host /Host 11# -C class - job class /Class 12# -n user - user /User 13# -t date - date /Date 14# -L name - name /Name 15# 16# Example: 17# 18# banner -Pt1 -w80 -l66 -x0 -y0 -Ff 19# -kcfA684taco.astart.com -Lpapowell -J../VERSION -CA 20# -npapowell -htaco.astart.com -Htaco.astart.com 21# -d/tmp/LPD/t1/dfA684 taco.astart.com accnt 22# 23# Output needed: 24# 25# %!PS-Adobe-2.0 26# /Seq (number) def 27# /Job (banner) def (with '()\' escaped ) 28# /Host (HOST) def 29# /Class (CLASS) def 30# /User (USER) def 31# /Date (DATE) def 32# /Name (NAME) def 33# < followed by the contents of the banner file > 34# These variables are used by the banner printing script to 35# produce output. 36## 37# ----------- start version 1 ------------ 38# 39 40PATH=/bin:/usr/bin 41Args="" 42vAr="" 43vAlue="" 44iI="" 45Args="$@" 46while expr "$1" : '-.*' >/dev/null ; do 47 vAr=`expr "$1" : '-\(.\).*'`; 48 vAlue=`expr "$1" : '-.\(.*\)'`; 49 case "$vAr" in 50 - ) break;; 51 c ) c=1;; 52 [a-zA-Z] ) 53 if test "X$vAlue" = "X" ; then shift; vAlue="$1"; fi; 54 eval $vAr='$vAlue'; 55 #setvar $vAr "$vAlue" 56 ;; 57 esac; 58 shift; 59done 60 61number=0; if [ -n "$j" ] ; then number="$j"; fi 62banner=NONE; if [ -n "$J" ] ; then banner="$J"; fi 63host=UNKNOWN; if [ -n "$h" ] ; then host="$h"; fi 64class=UNKNOWN; if [ -n "$C" ] ; then class="$C"; fi 65user=UNKNOWN; if [ -n "$n" ] ; then user="$n"; fi 66date=`date`; 67name=UNKNOWN; if [ -n "$L" ] ; then name="$L"; fi 68# put out the values 69cat <<EOF ; 70%!PS-Adobe-2.0 71/Seq ($number) def 72/Job ($banner) def 73/Host ($host) def 74/Class ($class) def 75/User ($user) def 76/Date ($date) def 77/Name ($name) def 78EOF 79# 80# The following is the postscript file that uses the variables 81# 82# Note that dimensions are given in points (72/inch) 83# 8.5 x 11.0 => 612 x 792 84# a4 = 8.5 x 11.75 => 612 x 846 85cat <<'EOF' ; 86/entries [(User:) (Name:) (Host:) (Date:) (Job:) (Class:)] def 87/low-point-size 10 def 88%% /high-point-size 120 def 89/high-point-size 80 def 90/line-spacing low-point-size 1.2 mul def 91/left-margin 22 def 92% a4 /first-baseline 840 def 93% 8.5x11 /first-baseline 786 def 94/first-baseline 786 def 95/last-baseline 30 def 96/user-baseline 150 def 97/user-margin left-margin low-point-size 4.2 mul add def 98/banner-baseline 630 def 99/banner-line-spacing high-point-size 1.1 mul def 100 101/Courier findfont low-point-size scalefont setfont 102 1030 1 5 { 104 dup line-spacing mul exch 2 gt 105 { first-baseline exch sub } 106 { last-baseline add } ifelse 107 left-margin exch moveto 108 (****************************************) show 109 (**************************************** Id: ) show 110 Seq show 111} for 112 1130 1 5 { 114 dup line-spacing mul user-baseline exch sub 115 left-margin exch moveto 116 entries exch get show 117} for 118 119/i 0 def 120 121[User Name Host Date Job Class] { 122 user-margin user-baseline i line-spacing mul sub moveto 123 i 0 eq 124 { show (@) show Host } if 125 show 126 /i i 1 add def 127} forall 128 129/i 0 def 130%%%%%% FANCY HEADER %%%%%%%%%%%%%%%%% 131%% 132 [Seq User Host Job] { 133 gsave 134 left-margin banner-baseline banner-line-spacing i mul sub translate 135 0 0 moveto 136 i 0 eq i 3 eq or 137 { i 0 eq { /Helvetica } { /Courier /high-point-size 76 def } ifelse } 138 { /Palatino-Italic } 139 ifelse 140 findfont high-point-size scalefont setfont 141 { 142 /charcode exch def 143 /thechar (-) dup 0 charcode put def 144 thechar true charpath stroke 145 thechar stringwidth pop 0 translate 0 0 moveto 146 } forall 147 /i i 1 add def 148 grestore 149 } forall 150%% 151 152 153%%%% Neat little Printer ICON 154%%%% if you don't mind waiting, remove the comments 155%%%% 156%% gsave 157%% /$F2psDict 200 dict def 158%% $F2psDict begin 159%% $F2psDict /mtrx matrix put 160%% /l {lineto} bind def 161%% /m {moveto} bind def 162%% /s {stroke} bind def 163%% /n {newpath} bind def 164%% /gs {gsave} bind def 165%% /gr {grestore} bind def 166%% /clp {closepath} bind def 167%% /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 168%% 4 -2 roll mul setrgbcolor} bind def 169%% /col-1 {} def 170%% /col0 {0 0 0 setrgbcolor} bind def 171%% /col1 {0 0 1 setrgbcolor} bind def 172%% /col2 {0 1 0 setrgbcolor} bind def 173%% /col3 {0 1 1 setrgbcolor} bind def 174%% /col4 {1 0 0 setrgbcolor} bind def 175%% /col5 {1 0 1 setrgbcolor} bind def 176%% /col6 {1 1 0 setrgbcolor} bind def 177%% /col7 {1 1 1 setrgbcolor} bind def 178%% /col8 {.68 .85 .9 setrgbcolor} bind def 179%% /col9 {0 .39 0 setrgbcolor} bind def 180%% /col10 {.65 .17 .17 setrgbcolor} bind def 181%% /col11 {1 .51 0 setrgbcolor} bind def 182%% /col12 {.63 .13 .94 setrgbcolor} bind def 183%% /col13 {1 .75 .8 setrgbcolor} bind def 184%% /col14 {.7 .13 .13 setrgbcolor} bind def 185%% /col15 {1 .84 0 setrgbcolor} bind def 186%% end 187%% /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def 188%% /$F2psEnd {$F2psEnteredState restore end} def 189%% %%EndProlog 190%% 191%% $F2psBegin 192%% 0 setlinecap 0 setlinejoin 193%% 412.0 205.0 translate 0.900 -0.900 scale 194%% 1.000 setlinewidth 195%% % Polyline 196%% n 64 107 m 64 101 l 124 101 l 124 107 l gs col0 s gr 197%% 0.500 setlinewidth 198%% % Polyline 199%% n 64 106 m 64 110 l gs col0 s gr 200%% % Polyline 201%% n 124 106 m 124 110 l gs col0 s gr 202%% % Polyline 203%% n 128 128 m 128 119 l 59 119 l 59 128 l clp gs 0.00 setgray fill gr 204%% gs col-1 s gr 205%% % Polyline 206%% n 59 119 m 59 104 l 44 104 l 44 119 l clp gs 0.00 setgray fill gr 207%% gs col-1 s gr 208%% % Polyline 209%% n 143 119 m 143 104 l 128 104 l 128 119 l clp gs 0.00 setgray fill gr 210%% gs col-1 s gr 211%% % Polyline 212%% n 146 92 m 146 116 l 143 116 l 143 92 l clp gs 0.00 setgray fill gr 213%% gs col-1 s gr 214%% % Polyline 215%% n 44 92 m 44 116 l 41 116 l 41 92 l clp gs 0.00 setgray fill gr 216%% gs col-1 s gr 217%% % Polyline 218%% n 50 95 m 50 92 l 44 92 l 44 95 l clp gs 0.00 setgray fill gr 219%% gs col-1 s gr 220%% % Polyline 221%% n 137 95 m 137 92 l 143 92 l 143 95 l clp gs 0.00 setgray fill gr 222%% gs col-1 s gr 223%% 1.000 setlinewidth 224%% % Polyline 225%% n 146 77 m 146 89 l 41 89 l 41 77 l clp gs col-1 s gr 226%% % Polyline 227%% n 43 90 m 43 78 l gs col-1 s gr 228%% % Polyline 229%% n 144 89 m 144 77 l gs col-1 s gr 230%% % Polyline 231%% n 41 77 m 41 71 l gs col-1 s gr 232%% % Polyline 233%% n 146 77 m 146 71 l gs col-1 s gr 234%% % Polyline 235%% n 50 65 m 59 65 l gs col-1 s gr 236%% 0.500 setlinewidth 237%% % Polyline 238%% n 59 70 m 128 70 l gs col-1 s gr 239%% % Polyline 240%% n 59 41 m 59 71 l gs col-1 s gr 241%% % Polyline 242%% n 59 71 m 128 71 l gs col-1 s gr 243%% % Polyline 244%% n 59 41 m 122 41 l gs col-1 s gr 245%% % Polyline 246%% n 128 48 m 128 71 l gs col-1 s gr 247%% % Polyline 248%% n 122 41 m 128 48 l gs col-1 s gr 249%% % Polyline 250%% n 116 41 m 116 53 l 128 53 l gs col-1 s gr 251%% 1.000 setlinewidth 252%% % Polyline 253%% n 128 65 m 131 65 l gs col-1 s gr 254%% % Polyline 255%% n 129 65 m 140 65 l 146 72 l gs col-1 s gr 256%% 0.500 setlinewidth 257%% % Polyline 258%% n 128 66 m 131 66 l gs col-1 s gr 259%% % Polyline 260%% n 128 67 m 131 67 l gs col-1 s gr 261%% % Polyline 262%% n 133 66 m 140 66 l gs col-1 s gr 263%% % Polyline 264%% n 133 67 m 141 67 l gs col-1 s gr 265%% % Polyline 266%% n 131 68 m 133 68 l gs col-1 s gr 267%% % Polyline 268%% n 131 69 m 133 69 l gs col-1 s gr 269%% 1.000 setlinewidth 270%% % Polyline 271%% n 51 65 m 41 72 l gs 0.85 setgray fill gr 272%% gs col0 s gr 273%% 0.500 setlinewidth 274%% % Polyline 275%% n 143 88 m 143 78 l 44 78 l 44 88 l clp gs 0.60 setgray fill gr 276%% gs col0 s gr 277%% % Polyline 278%% n 132 77 m 41 77 l 41 72 l 51 65 l 59 65 l 59 71 l 279%% 128 71 l 128 67 l 131 67 l gs 0.75 setgray fill gr 280%% gs col0 s gr 281%% % Polyline 282%% n 132 77 m 145 77 l 146 77 l 146 71 l 146 72 l 141 66 l 283%% 133 66 l 133 68 l 133 68 l 133 69 l 131 69 l gs 0.75 setgray fill gr 284%% gs col0 s gr 285%% 1.000 setlinewidth 286%% % Polyline 287%% n 141 89 m 141 92 l gs col0 s gr 288%% % Polyline 289%% n 46 89 m 46 93 l gs col0 s gr 290%% % Polyline 291%% n 138 80 m 140 80 l gs col0 s gr 292%% % Polyline 293%% n 138 85 m 140 85 l gs col0 s gr 294%% 0.500 setlinewidth 295%% % Polyline 296%% n 128 104 m 143 104 l 143 95 l 137 95 l 137 92 l 141 92 l 297%% 141 92 l 140 92 l 141 92 l 141 89 l 46 89 l 298%% 46 92 l 50 92 l 50 95 l 44 95 l 44 104 l 299%% 59 104 l gs 0.50 setgray fill gr 300%% gs col0 s gr 301%% % Polyline 302%% n 59 104 m 59 119 l 128 119 l 128 104 l gs 0.35 setgray fill gr 303%% gs col0 s gr 304%% 1.000 setlinewidth 305%% % Polyline 306%% n 65 102 m 69 102 l gs col0 s gr 307%% % Polyline 308%% n 124 102 m 120 102 l gs col0 s gr 309%% % Polyline 310%% n 121 102 m 119 102 l gs col0 s gr 311%% 0.500 setlinewidth 312%% % Polyline 313%% n 64 104 m 64 108 l gs col0 s gr 314%% % Polyline 315%% n 124 104 m 124 108 l gs col0 s gr 316%% % Polyline 317%% n 125 108 m 131 108 l gs col0 s gr 318%% % Polyline 319%% n 57 108 m 63 108 l gs col0 s gr 320%% % Polyline 321%% n 120 108 m 124 108 l gs col0 s gr 322%% % Polyline 323%% n 64 108 m 68 108 l gs col0 s gr 324%% 1.000 setlinewidth 325%% % Polyline 326%% n 67 110 m 71 110 l gs col0 s gr 327%% % Polyline 328%% n 67 106 m 71 106 l gs col0 s gr 329%% 0.500 setlinewidth 330%% % Polyline 331%% n 71 108 m 73 108 l gs col0 s gr 332%% 1.000 setlinewidth 333%% % Polyline 334%% n 73 110 m 76 110 l gs col0 s gr 335%% % Polyline 336%% n 73 106 m 76 106 l gs col0 s gr 337%% 0.500 setlinewidth 338%% % Polyline 339%% n 76 108 m 78 108 l gs col0 s gr 340%% 1.000 setlinewidth 341%% % Polyline 342%% n 78 110 m 82 110 l gs col0 s gr 343%% % Polyline 344%% n 78 106 m 82 106 l gs col0 s gr 345%% 0.500 setlinewidth 346%% % Polyline 347%% n 82 108 m 86 108 l gs col0 s gr 348%% 1.000 setlinewidth 349%% % Polyline 350%% n 64 106 m 64 100 l 124 100 l 124 106 l gs col0 s gr 351%% % Polyline 352%% n 86 106 m 89 106 l gs col0 s gr 353%% % Polyline 354%% n 86 110 m 89 110 l gs col0 s gr 355%% % Polyline 356%% n 117 106 m 121 106 l gs col0 s gr 357%% % Polyline 358%% n 117 110 m 121 110 l gs col0 s gr 359%% 0.500 setlinewidth 360%% % Polyline 361%% n 115 108 m 117 108 l gs col0 s gr 362%% 1.000 setlinewidth 363%% % Polyline 364%% n 112 110 m 115 110 l gs col0 s gr 365%% % Polyline 366%% n 112 106 m 115 106 l gs col0 s gr 367%% 0.500 setlinewidth 368%% % Polyline 369%% n 110 108 m 112 108 l gs col0 s gr 370%% 1.000 setlinewidth 371%% % Polyline 372%% n 106 110 m 110 110 l gs col0 s gr 373%% % Polyline 374%% n 106 106 m 110 106 l gs col0 s gr 375%% 0.500 setlinewidth 376%% % Polyline 377%% n 102 108 m 106 108 l gs col0 s gr 378%% 1.000 setlinewidth 379%% % Polyline 380%% n 99 106 m 102 106 l gs col0 s gr 381%% % Polyline 382%% n 99 110 m 102 110 l gs col0 s gr 383%% 0.500 setlinewidth 384%% % Polyline 385%% n 89 108 m 93 108 l gs col0 s gr 386%% % Polyline 387%% n 95 108 m 99 108 l gs col0 s gr 388%% 1.000 setlinewidth 389%% % Polyline 390%% n 77 101 m 77 105 l gs col0 s gr 391%% % Polyline 392%% n 72 101 m 72 105 l gs col0 s gr 393%% % Polyline 394%% n 83 101 m 83 105 l gs col0 s gr 395%% % Polyline 396%% n 85 101 m 85 105 l gs col0 s gr 397%% % Polyline 398%% n 103 101 m 103 105 l gs col0 s gr 399%% % Polyline 400%% n 105 101 m 105 105 l gs col0 s gr 401%% % Polyline 402%% n 111 101 m 111 105 l gs col0 s gr 403%% % Polyline 404%% n 116 101 m 116 105 l gs col0 s gr 405%% % Polyline 406%% n 90 101 m 90 105 l gs col0 s gr 407%% % Polyline 408%% n 92 101 m 92 105 l gs col0 s gr 409%% % Polyline 410%% n 96 101 m 96 105 l gs col0 s gr 411%% % Polyline 412%% n 98 101 m 98 105 l gs col0 s gr 413%% % Polyline 414%% n 94 104 m 94 107 l gs col0 s gr 415%% % Polyline 416%% n 94 108 m 94 111 l gs col0 s gr 417%% 0.500 setlinewidth 418%% % Polyline 419%% n 64 109 m 64 113 l gs col0 s gr 420%% % Polyline 421%% n 124 109 m 124 113 l gs col0 s gr 422%% % Polyline 423%% n 64 116 m 64 120 l gs col0 s gr 424%% %/Times-Roman findfont 24.00 scalefont setfont 425%% %69 64 m 426%% /Times-Roman findfont 20.00 scalefont setfont 427%% 63 64 m 428%% gs 1 -1 scale (LPRng) col0 show gr 429%% $F2psEnd 430%% grestore 431showpage 432 433EOF 434