321 lines · 7.4 KB · Text
RawDownload
%% Formatted font dump. Assumes all fonts include valid FontBBox arrays.% /#copies 1 store/aspectratio 1 def/landscape false def/magnification 1 def/margin 10 def/orientation 0 def/rotation 1 def/xoffset 0 def/yoffset 0 def /axescount 0 def/charwidth false def/graynotdef 0.85 def/hireslinewidth 0.2 def/longnames false def/maxsize 6.0 def/minsize 4.5 def/numbercell true def/radix 16 def/labelfont /Helvetica def/labelspace 36 def/zerocell 0 def /roundpage true def/useclippath true def/pagebbox [0 0 612 792] def /inch {72 mul} def/min {2 copy gt {exch} if pop} def/max {2 copy lt {exch} if pop} def /LLx {0 get} bind def/LLy {1 get} bind def/URx {2 get} bind def/URy {3 get} bind def/BBoxHeight {dup URy exch LLy sub} bind def/BBoxWidth {dup URx exch LLx sub} bind def /setup {	/graylevels [1 0 0] def	/scratchstring 512 string def	/Product statusdict begin /product where {pop product}{(Unknown)} ifelse end def	/Resolution 0 72 dtransform dup mul exch dup mul add sqrt cvi def	/Version /version where {pop version}{(???)} ifelse def 	landscape {/orientation 90 orientation add def} if 	pagedimensions	xcenter ycenter translate	orientation rotation mul rotate	width 2 div neg height 2 div translate	xoffset inch yoffset inch neg translate	margin dup neg translate	0 labelspace .75 mul neg translate	magnification dup aspectratio mul scale	0 0 transform round exch round exch itransform translate 	currentdict /linewidth known not {		/linewidth Resolution 400 le {0}{hireslinewidth} ifelse def	} if} def /pagedimensions {	useclippath {		/pagebbox [clippath pathbbox newpath] def		roundpage currentdict /roundpagebbox known and {roundpagebbox} if	} if	pagebbox aload pop	4 -1 roll exch 4 1 roll 4 copy	landscape {4 2 roll} if	sub /width exch def	sub /height exch def	add 2 div /xcenter exch def	add 2 div /ycenter exch def} def /CharSetup {	/chcode exch def	/chname Encoding chcode get def	/chstring ( ) dup 0 chcode put def	/chknown true def 	graylevels 0 1 put	% initial cell fill	graylevels 1 0 put	% cell text	graylevels 2 0 put	% cell border 	FontDict /CharStrings known {		FontDict /CharStrings get chname known not {			/chknown false def			graylevels 0 0 put			graylevels 1 1 put		} if	} if 	chname /.notdef eq {		/chknown false def		graylevels 0 graynotdef put		graylevels 1 graynotdef put	} if 	/chwid chknown		{FontDict 1 scalefont setfont chstring stringwidth pop}		{0}	ifelse def} bind def /CellSetup {	/gridwidth width margin 2 mul sub def	/gridheight height labelspace sub margin 2 mul sub def	/cellwidth gridwidth radix div def	/cellheight gridheight Entries radix div ceiling div def 	cellwidth cellheight dtransform truncate exch truncate exch idtransform	/cellheight exch def	/cellwidth exch def 	labelfont findfont 1 scalefont setfont	/LabelBBox currentfont /FontBBox get TransformBBox def 	LabelBBox 2 0 Encoding {		scratchstring cvs stringwidth pop		2 copy lt {exch} if		pop	} forall put 	/CellLabelSize		cellheight .20 mul cellwidth .90 mul LabelBBox BestFit		minsize max		maxsize min	def	zerocell CellOrigin cellheight add neg exch neg exch translate} bind def /FontSetup {	FontName findfont 1 scalefont setfont	/BBox currentfont /FontBBox get TransformBBox def	/PointSize cellheight .5 mul cellwidth .8 mul BBox BestFit def	BBox {PointSize mul} forall BBox astore pop 	/xorigin cellwidth BBox BBoxWidth sub 2 div BBox LLx sub def	/yorigin cellheight BBox BBoxHeight sub 2 div BBox LLy sub def} bind def /BestFit {	/bbox exch def	bbox BBoxWidth div exch	bbox BBoxHeight div min} bind def /TransformBBox {	% font bbox to user space	aload pop	currentfont /FontMatrix get dtransform 4 2 roll	currentfont /FontMatrix get dtransform 4 2 roll	4 array astore	% should build user space bbox if all zeros} bind def /CellOrigin {	dup	exch radix mod cellwidth mul	exch radix idiv 1 add neg cellheight mul} bind def /CellOutline {	newpath	CellOrigin moveto	cellwidth 0 rlineto	0 cellheight rlineto	cellwidth neg 0 rlineto	closepath} bind def /LabelCell {	gsave	chcode CellOrigin translate	linewidth .5 mul setlinewidth	labelfont findfont CellLabelSize scalefont setfont 	numbercell {		cellwidth .025 mul cellheight .05 mul moveto		chcode radix scratchstring cvrs show	} if 	charwidth chknown and {		/wid chwid 0.0005 add scratchstring cvs 0 5 getinterval def		cellwidth wid stringwidth pop 1.10 mul sub cellheight .05 mul moveto		wid show	} if 	longnames chknown not or {		cellwidth .025 mul		cellheight LabelBBox URy CellLabelSize mul sub .05 sub moveto		Encoding chcode get scratchstring cvs show	} if 	axescount 1 ge chknown and {	% gsave/grestore if not last		newpath		xorigin yorigin translate 		BBox LLx 0 moveto	% baseline		BBox URx 0 lineto stroke 		axescount 2 ge {	% vertical through current origin			0 BBox LLy moveto			0 BBox URy lineto stroke		} if 		axescount 3 ge {	% vertical through next origin			chwid PointSize mul BBox LLy			dtransform round exch round exch idtransform moveto			0 BBox BBoxHeight rlineto stroke			%chwid PointSize mul BBox URy lineto stroke		} if	} if	grestore} bind def /PlaceChar {	FontName findfont PointSize scalefont setfont	chcode CellOrigin moveto	xorigin yorigin rmoveto	( ) dup 0 chcode put show} bind def /LabelPage {	labelfont findfont labelspace .75 mul .75 mul 18 min scalefont setfont	0 labelspace .75 mul .25 mul moveto	FontName scratchstring cvs show 	labelfont findfont labelspace .25 mul .75 mul 9 min scalefont setfont	0 gridheight neg moveto	0 labelspace .25 mul .75 mul neg rmoveto	Product show ( Version ) show Version show	( \() show Resolution scratchstring cvs show (dpi\)) show 	gridwidth gridheight neg moveto        0 labelspace .25 mul .75 mul neg rmoveto	(size=, ) stringwidth pop neg 0 rmoveto	PointSize cvi scratchstring cvs stringwidth pop neg 0 rmoveto	(gray=, ) stringwidth pop neg 0 rmoveto	graynotdef scratchstring cvs stringwidth pop neg 0 rmoveto	(linewidth=) stringwidth pop neg 0 rmoveto	linewidth scratchstring cvs stringwidth pop neg 0 rmoveto	(size=) show PointSize cvi scratchstring cvs show (, ) show	(gray=) show graynotdef scratchstring cvs show (, ) show	(linewidth=) show linewidth scratchstring cvs show} bind def %% Formatted dump of the encoded characters in a single font.% /PrintFont {	/saveobj save def	/FontName exch def	/FontDict FontName findfont def	/Encoding FontDict /Encoding get def	/Entries Encoding length def 	CellSetup	FontSetup	LabelPage	zerocell 1 Entries 1 sub {		CharSetup		graylevels 0 get setgray		chcode CellOutline fill		graylevels 1 get setgray		LabelCell		PlaceChar		graylevels 2 get setgray		linewidth setlinewidth		chcode CellOutline stroke	} for	showpage	saveobj restore} bind def %% Dump of all ROM and disk fonts - in alphabetical order.% /AllFonts {	/AllFontNames FontDirectory maxlength array def	AllFontNames 0 0 put 	FontDirectory {pop AllFontNames Insert} forall 	/filenameforall where {		pop		(fonts/*)		{(fonts/) search pop pop pop AllFontNames Insert}		200 string		filenameforall	} if 	1 1 AllFontNames 0 get {		AllFontNames exch get cvn PrintFont	} for} bind def /Insert {		% name in a sorted list	/List exch def	/Name exch 128 string cvs def 	/Slot 1 def	List 0 get {		Name List Slot get le {exit} if		/Slot Slot 1 add def	} repeat 	List 0 get -1 Slot {		dup List exch get		List 3 1 roll exch 1 add exch put	} for	List Slot Name put	List 0 List 0 get 1 add put} bind def