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