📄 printfont.ps
字号:
%% 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -