Server IP : 85.214.239.14 / Your IP : 18.119.134.196 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/bin/ |
Upload File : |
#!/bin/sh # showchar: show character with information # usage: # showchar Font-Name Char-Name | lpr -Pprinter if [ $# != 2 ]; then echo "Usage: `basename $0` Font-Name Char-Name" >&2 exit 1 fi cat <<EOF %! % Get character metrics and bounding box for $1 /ns 30 string def /fname /$1 def /cname /$2 def /fn fname findfont 1000 scalefont def /thin 0.7 def /reduction 2.0 def /sn { ns cvs show } def /sc { (\()show exch sn (,)show sn (\))show } def /Times-Roman findfont 10 scalefont setfont 72 242 translate % one inch in, 3 1/2 inch up newpath 0 0 moveto gsave % print character name 0 468 rmoveto ($2 from font $1 displayed on `date` by `basename $0` 1.00 (C) AJCD 1991) show grestore gsave thin setlinewidth % cross hairs -9 0 rmoveto 18 0 rlineto -9 -9 rmoveto 0 18 rlineto stroke % position info -9 -9 moveto ((0,0)) stringwidth pop neg 0 rmoveto ((0,0)) show grestore % create encoding with a single character at all positions /MyEncoding 256 array def 0 1 255 { % fill out with notdefs MyEncoding exch cname put } for fn dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding MyEncoding def currentdict end /newfont exch definefont /fn exch def /en MyEncoding def gsave % draw character (enlarged) .75 setgray fn 1 reduction div scalefont setfont (\000) show grestore % show character info fn /Metrics known { dup fn /Metrics get exch get dup type /arraytype eq { dup length 2 eq {1 get 0} {dup 2 get exch 3 get} ifelse } { round 0 } ifelse } { gsave fn setfont (\000) stringwidth round exch round exch grestore } ifelse gsave % show width thin setlinewidth 2 copy reduction div exch reduction div exch rlineto gsave 1 1 rmoveto sc grestore -4 -3 rlineto 0 6 rmoveto 4 -3 rlineto stroke grestore gsave gsave % get bounding box fn setfont (\000) true charpath flattenpath pathbbox grestore thin setlinewidth 3 index reduction div % put coords on top of stack 3 index reduction div 3 index reduction div 3 index reduction div 3 index 3 index moveto gsave % llx lly 0 -9 rmoveto 7 index 7 index sc grestore 1 index 3 index lineto gsave % urx lly 0 -9 rmoveto 5 index 7 index sc grestore 1 index 1 index lineto gsave % urx ury 0 9 rmoveto 5 index 5 index sc grestore 3 index 1 index lineto gsave % llx ury 0 9 rmoveto 7 index 5 index sc grestore closepath stroke grestore showpage EOF