%!PS-Adobe-3.0 %%Title: Adobe-GB1 CID-Keyed Fonts Character List %%Creator: Taiji Yamada and gs-cjk project %%Copyright: (C) 2001 Taiji Yamada and gs-cjk project %%+ This script is part of GNU Ghostscript and is distributed under %%+ the terms of the GNU Affero General Public License. See the file COPYING %%+ for more information. %%Version: 1.0 % % Usage: % gs [-sF=BousungEG-Light-GB] [-daffix [-sAF=STSong-Light]] \ % [-dglyphshow- [-sI=Identity-H]] [-ddescent=200] all_ag1.ps % %%DocumentMedia: A4 595 842 0 white () %%EndComments %%BeginProlog /*gs-cjk (\ ------------------------------------------------------------------------\n\ This is a script to test CJK fonts such as CID-keyed fonts.\n\ If you have not done CID-keyed fonts installation and definitions at\n\ /Resource/CMap and CIDFnmap or /Resource/CIDFont of ghostscript, then\n\ this script can't work correctly.\n\ For details, please see README at http://www.gyve.org/gs-cjk/supplement.\n\ If you throw this script into a printer, it requires PostScript 3\n\ printer and CID-keyed fonts specified in this script.\n\ ------------------------------------------------------------------------\n) def /notice*stdout 4 dict begin /*open {} def /*echo-n { =only } def /*echo { = } def /*close { flush } def currentdict end def /notice*page 5 dict begin /*y 750 def /*open { gsave initmatrix /Courier findfont 11 scalefont setfont 50 *y moveto *y 750 eq { *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop } if } def /*echo-n { dup type /stringtype ne { dup length string cvs } if show } def /*echo { *echo-n /*y *y 11 sub def 50 *y moveto } def /*close { grestore } def currentdict end def /greeting*gs-cjk { product (Ghostscript) search not { pop } { pop pop pop QUIET not { notice*stdout begin *open *gs-cjk { (\n) search { *echo } { *echo-n exit } ifelse pop } loop *close end } if } ifelse } bind def greeting*gs-cjk /*findfont { dup /Font resourcestatus { pop pop findfont } { notice*page begin *open (Error in findfont: ) *echo-n dup *echo *close end findfont } ifelse } bind def /*CIDFont*findresource { dup /CIDFont resourcestatus { pop pop /CIDFont findresource } { notice*page begin *open (Error in /CIDFont findresource: ) *echo-n dup *echo *close end /CIDFont findresource } ifelse } bind def /orighandleerror errordict /handleerror get def errordict begin /handleerror { notice*page begin errordict begin $error begin *open (Error of ) *echo-n errorname dup length string cvs *echo *close showpage end end end orighandleerror } bind def end /title (Adobe-GB1 CID-Keyed Fonts Character List) def /PW 595 def /PH 842 def /LM 78 def /TM 130 def /RM 47 def /BM 76 def /NH 10 def /NV 12 def /RW PW LM RM add sub NH div def /RH PH TM BM add sub NV div def /FS RW 3 mul 4 div def /AFS RW 1 mul 4 div def /unknowndef { exch dup where { pop pop pop } { exch def } ifelse } bind def /F (STHeiti-Regular) unknowndef /affix false unknowndef /AF (STSong-Light) unknowndef /descent 130 unknowndef /glyphshow- false unknowndef /fss { exch *CIDFont*findresource exch scalefont setfont } bind def /concats { % [str ...] concats str () exch dup length 1 sub -1 0 { 1 index exch get dup type /stringtype ne { dup length string cvs } if 3 -1 roll exch dup length 2 index length add string dup dup 4 2 roll copy length 4 -1 roll putinterval exch } for pop } bind def /composefontname { % font cmap composefontname font--cmap [ 2 index (--) 3 index ] concats dup 3 -1 roll [ 5 -1 roll ] composefont pop } bind def glyphshow- { /I (Identity-H) unknowndef /F F I composefontname def affix { /AF AF I composefontname def } if /fss { exch *findfont exch scalefont setfont } bind def /s 2 string def } if /glyphframe { % h oldx glyphframe - gsave 0 setlinewidth currentpoint pop sub exch dup 0 exch descent mul 1000 div neg rmoveto currentpoint 4 -2 roll rectstroke grestore } bind def /box { % llx lly urx ury box - 3 index 3 index moveto exch 4 -1 roll sub 3 1 roll exch sub currentpoint 4 -2 roll rectstroke } bind def /charframe { % h string charframe - gsave 0 setlinewidth stringwidth pop exch dup 0 exch descent mul 1000 div neg rmoveto currentpoint 4 -2 roll rectstroke grestore } bind def /pathframe { % string pathframe - gsave 0 setlinewidth true charpath flattenpath pathbbox box grestore } bind def /np { /Helvetica findfont 11 scalefont setfont LM BM 11 2 mul sub moveto title show ( - ) show F show affix { gsave /Helvetica findfont 5 scalefont setfont ( and ) show AF show grestore } if PW RM sub BM 11 2 mul sub moveto p 3 string cvs show /p p 1 add def showpage /x LM def /y PH TM sub def } bind def /nb { /x x RW add def x PW RM sub ge { /x LM def /y y RH sub def y BM le { np /y PH TM sub def } if } if } bind def %%EndProlog /x LM def /y PH TM sub def /p 1 def [ %[0 7716] % Adobe-GB1-0 %[0 9896] % Adobe-GB1-0,1 %[0 22126] % Adobe-GB1-0,1,2 %[0 22352] % Adobe-GB1-0,1,2,3 [0 29063] % Adobe-GB1-0,1,2,3,4 ] { cvx exec 1 exch { /id exch def F FS fss x y FS sub moveto glyphshow- not { id glyphshow FS x glyphframe } { s 0 id 256 idiv put s 1 id 256 mod put FS s charframe s pathframe s show } ifelse affix { AF AFS fss x FS add y FS sub moveto glyphshow- not { id glyphshow AFS x FS add glyphframe } { AFS s charframe s pathframe s show } ifelse } if % /Times-Roman findfont 7 scalefont setfont x y FS sub FS descent mul 1000 div sub 7 sub moveto id 5 string cvs show nb } for np } forall %%Trailer %%EOF