%!PS % POSTSCRIPT GRAYSCALE FONT INTEGRATOR V1.2 % ================================================================= % Copyright c 2001 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.5 (C:\\windows\\desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo gonzo begin ps.util.1 begin nuisance begin /startat 0 store % relative to actual array length /endat 43 store /globalxwide 218.9 store % valid for "A" /globalyhigh 195.6 store /globalxoffset -8.1 store /globalyoffset 0 store /header { (\n% /f1314bg is a full integral grayscale antialiased Helvetica-Bold ten) print (\n% point font. It is superbly legible but requires special grayscale procs or) print (\n% glyphs for use... ) print (\n% ) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n% GGG GGG) print (\n% GGG GGG) print (\n% GGG GGG) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n% GGG GGG) print (\n% GGG GGG) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n% GGGGGGGGGGGGG) print (\n ) print (\n/f1314bg { /ff [ 256 {[ [.999 ]]} repeat ] store\n) print (\n% ) print globalxoffset 10 string cvs print ( ) print globalyoffset 10 string cvs print ( ) print globalxwide 10 string cvs print ( ) print globalyhigh 10 string cvs print ( ) print (\n) print } def /charstartdata { (\n [ % ) print xoffsetadd 10 string cvs print ( ) print yoffsetadd 10 string cvs print ( ) print xgainmult 10 string cvs print ( ) print ygainmult 10 string cvs print ( ) print basesuppression 10 string cvs print ( ) print specialcomment print } def /charenddata { ( ff exch ) print charnum 5 string cvs print ( exch put % ) print typeofchar print ( ") print curgchar print (" \n) print }def /footer { (\n\n ff } def) print (\n\n% eof\n\n) print flush } def /gchardata [ [ (space) ( ) 8 14 0 0.0 0 1.000 1.00 ( ) ] [ (punctuation) (\() 5 14 2 -5.9 0 1.000 1.00 ( ) ] [ (punctuation) (\)) 5 14 2 -0.9 0 1.000 1.00 ( ) ] [ (punctuation) (+) 10 14 0 +0.3 0 0.91 1.00 ( ) ] [ (punctuation) (-) 10 14 0 -2.9 0 1.7 1.00 ( widened for minus ) ] [ (punctuation) (.) 3 14 0 -7.6 0 1.000 1.00 ( ) ] [ (numeral) (0) 10 14 0 -3.7 0.2 1.030 1.00 ( all numerals widened ) ] [ (numeral) (1) 7 14 0 -9.3 0 1.010 1.00 ( thin one for text ) ] [ (numeral) (2) 10 14 0 +0.9 0 0.98 1.00 ( ) ] [ (numeral) (3) 10 14 0 -2.1 0.5 0.98 1.00 ( ) ] [ (numeral) (4) 10 14 0 +3.2 0 0.90 1.00 ( ) ] [ (numeral) (5) 10 14 0 -4.5 1.1 1.000 1.005 ( ) ] [ (numeral) (6) 10 14 0 -3.9 0.6 1.000 1.00 ( ) ] [ (numeral) (7) 10 14 0 -0.6 0 0.98 1.017 ( ) ] [ (numeral) (8) 10 14 0 -2.9 0.3 1.000 1.00 ( ) ] [ (numeral) (9) 10 14 0 -0.9 0.2 1.000 1.00 ( ) ] [ (punctuation) (=) 10 14 0 -0.3 -4.2 0.92 1.00 ( ) ] [ (upper case) (A) 14 14 0 +3.2 0 0.955 1.00 ( ) ] [ (upper case) (B) 13 14 0 -8.3 0 1.000 1.00 ( ) ] [ (upper case) (C) 13 14 0 -5.5 0 1.000 1.00 ( ) ] [ (upper case) (D) 13 14 0 -8.4 0 1.010 1.00 ( ) ] [ (upper case) (E) 12 14 0 -7.9 0 1.010 1.00 ( ) ] [ (upper case) (F) 11 14 0 -8.6 0 1.020 1.00 ( ) ] [ (upper case) (G) 14 14 0 -4.1 0 0.986 1.00 ( ) ] [ (upper case) (H) 12 14 0 -9.1 0 0.977 1.00 ( ) ] [ (upper case) (I) 3 14 0 -6.6 0 0.975 1.00 ( ) ] [ (upper case) (J) 10 14 0 +3.7 0 1.000 1.00 ( ) ] [ (upper case) (K) 13 14 0 -8.2 0 0.976 1.00 ( ) ] [ (upper case) (L) 11 14 0 -8.6 0 1.000 1.00 ( ) ] [ (upper case) (M) 15 14 0 -7.4 0 0.998 1.00 ( ) ] [ (upper case) (N) 12 14 0 -9.3 0 0.976 1.00 ( ) ] [ (upper case) (O) 14 14 0 -4.7 -0.2 0.976 1.00 ( ) ] [ (upper case) (P) 12 14 0 -7.7 0 1.000 1.00 ( ) ] [ (upper case) (Q) 14 14 1 -3.1 0 0.946 1.00 ( tail needs darkened manually ) ] [ (upper case) (R) 14 14 0 -8.7 0 1.020 1.00 ( ) ] [ (upper case) (S) 12 14 0 -3.8 -0.2 0.980 1.00 ( ) ] [ (upper case) (T) 12 14 0 +2.7 0 0.970 1.00 ( ) ] [ (upper case) (U) 12 14 0 -8.3 0 0.970 1.00 ( ) ] [ (upper case) (V) 13 14 0 +2.3 0 0.960 1.00 ( ) ] [ (upper case) (W) 16 14 0 +1.0 0 0.840 1.00 ( ) ] [ (upper case) (X) 13 14 0 +2.2 0 0.970 1.00 ( ) ] [ (upper case) (Y) 13 14 0 +1.7 0 0.970 1.00 ( ) ] [ (upper case) (Z) 12 14 0 +4.8 0.00 0.95 1.00 ( ) ] [ (lower case) (n) 10 14 0 -7.2 0 0.975 1.00 ( ) ] ] def /allchars { header startat 1 endat { save /savesnap exch store /curgdval exch store gchardata curgdval get aload pop /specialcomment exch store /ygainmult exch store /xgainmult exch store /yoffsetadd exch store /xoffsetadd exch store /basesuppression exch store /pixelshigh exch store /pixelswide exch store /curgchar exch store /typeofchar exch store 50 50 3.5 setgrid pixelswide 10 mul pixelshigh basesuppression add 10 mul showgrid /charnum curgchar 0 get store /xwide globalxwide xgainmult mul store /yhigh globalyhigh ygainmult mul store /xoffset globalxoffset xoffsetadd add store /yoffset globalyoffset yoffsetadd add store /font1 /Helvetica-Bold [xwide 0 0 yhigh 0 0 ] gonzofont font1 charstartdata nextchar charenddata savesnap restore } for footer } def %%%%%% GENERATES THE NEXT CHARACTER %%%%%%%% /nextchar { xoffset yoffset moveto curgchar false charpath mark pixelshigh 1 sub -1 0 basesuppression sub {/ccol exch store mark 0 1 pixelswide 1 sub {/rrow exch store 0 0.25 .5 9.76 {/iii exch store 0.25 .5 9.76 {/jjj exch store rrow 10 mul iii add ccol 10 mul jjj add infill not {1 add} if } for } for 400 div 999.9 mul floor 1000 div } for ] } for ] /garray exch store 0 1 garray length 1 sub {/iiii exch store garray iiii get /curgarray1 exch store (\n[ ) print 0 1 curgarray1 length 1 sub {/jjjj exch store curgarray1 jjjj get 10 string cvs dup (0.0) eq {pop (0.000)} if print ( ) print } for (]) print flush } for (\n ]\n) print 0.6 0.6 0.6 setrgbcolor fill 0.5 0.5 0 setrgbcolor 0.2 setlinewidth [{0 0 mt pixelshigh 10 mul u} 10 pixelswide 1 add ] xrpt [{0 0 mt pixelswide 10 mul r} 10 pixelshigh 1 add ] yrpt showpage } def allchars