%! % Prints a sorted list of resident fonts. /MaxNrOfFonts 100 def % Maximum numbers of fonts... /Xpos 136 def /Ypos 690 def /num 0 def % local counter /incr { /num num 1 add def } def /s40 { 40 string } def % Proper length of the fontname /showline { % Show and newlines show newline } def /newline { % Spacing between lines /Ypos Ypos 12 sub def Xpos Ypos moveto } def /CountFonts { % Count the fonts and put the names into array FontDirectory { pop s40 cvs incr } forall /FontArray num array def FontArray astore pop } def /ListFonts { % Sort the fonts and show them on paper Bubbelsort FontArray { showline } forall } def /Bubbelsort { % Here is the sorting routine 1 1 num 1 sub { /localcount exch def num 1 sub -1 localcount { /innercount exch def /firststring FontArray innercount 1 sub get def /secondstring FontArray innercount get def firststring secondstring gt { FontArray innercount 1 sub secondstring put FontArray innercount firststring put } if } for } for } def /prettyline { /YPOSition exch def newpath Xpos Ypos YPOSition add moveto Xpos 100 add Ypos YPOSition add lineto stroke } def /Times-Roman findfont 12 scalefont setfont 14 prettyline Xpos Ypos 18 add moveto CountFonts (Number of fonts: ) show num s40 cvs show 30 prettyline Xpos Ypos moveto ListFonts newline /Times-Bold findfont 12 scalefont setfont (Total memory: ) show vmstatus s40 cvs show newline (Memory used: ) show s40 cvs show newline pop (Free memory: ) show vmstatus exch sub s40 cvs show newline newline pop /Times-Roman findfont 12 scalefont setfont (From ulfis@nada.kth.se, 88-10-05) show showpage