fyl@ssc.UUCP (Phil Hughes) (02/08/89)
A friend of mine asked me if I knew how to make a complement of the
Zapf Dingbats font -- it only has hands and arrows that point in
one direction and she wanted the other direction as well. I didn't
have an answer so she wrote one. The following PostScript program
is that answer. If you have suggestions or improvements she has
asked that you send them to her. She is:
{uw-beaver!tikal,uunet!pilchuck}!ssc!gasv!mac
---------------------------------------------------------------
Here is the PostScript program I did for making a
reverse dingbats font. It was easy once I figured
out how the program I was copying from Adobe's
cookbook worked. The problem was that I was reading
Adobe's new book on PostScript programming (the green
book) and the cookbook examples do lots of things the
green book recommends against. The style of my program
is a little funny because I was reading three different
books on programming at the time I wrote it. But it
works. I don't know if you have dingbats yet, but
maybe you know someone who would like this.
M McB
--------------------------------------------------------------------
%% dingreverse.pro
%% re-encode ZapfDingbats font to make ZapfDingbats-Reverse
%% Version 0.1
%% Date: 1-29-88
/BaseFontDict /ZapfDingbats findfont def
% Make NewMetrics dictionary with neg. x values
/NewMetrics BaseFontDict /CharStrings get length dict def
gsave
nulldevice
BaseFontDict 1 scalefont setfont
/CharCount 0 def
BaseFontDict /Encoding get
{ % forall
/CharName exch def
CharName /.notdef ne
{ % if
/CharWidth 1 string dup 0
CharCount put stringwidth pop 1000 mul neg def
NewMetrics CharName CharWidth put
} if
/CharCount CharCount 1 add def
} forall
grestore
NewMetrics
% Re-encode font backwards
/ReverseFontDict 12 dict def
ReverseFontDict begin
/NewFontDict BaseFontDict maxlength 1 add dict def
BaseFontDict
{exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy
NewFontDict 3 1 roll put }
{ exch NewFontDict 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
} forall
NewFontDict /FontName /ZapfDingbats-Reverse put
NewFontDict /FontMatrix [ -.001 0 0 .001 1 0] put
NewFontDict /Metrics NewMetrics put
/ZapfDingbats-Reverse NewFontDict definefont pop
end
% end of new font
/ZapfDingbats-Reverse findfont 14 scalefont setfont
200 100 moveto
(* + ~ . / 0 1 2 \335 \336 \337 \340 \341 \341 \343 \344 \351) show
/ZapfDingbats findfont 14 scalefont setfont
200 120 moveto
(* + ~ . / 0 1 2 \335 \336 \337 \340 \341 \341 \343 \344 \351) show
showpage
--
Phil Hughes, SSC, Inc. P.O. Box 55549, Seattle, WA 98155 (206)FOR-UNIX
uw-beaver!tikal!ssc!fyl or uunet!pilchuck!ssc!fyl or attmail!ssc!fyl