#!/bin/sh # gen-pdfsample.sh - print all glyphs in PDF file # Usage: gen-pdfsample.sh # where font file name is # export GS_LIB=. top_builddir=${top_builddir-../} fsuffix=$1 fprefix=$2 FONTS="Garuda Garuda-Oblique Garuda-Bold Garuda-BoldOblique Kinnari Kinnari-Oblique Kinnari-Italic Kinnari-Bold Kinnari-BoldOblique Kinnari-BoldItalic Norasi Norasi-Oblique Norasi-Italic Norasi-Bold Norasi-BoldOblique Norasi-BoldItalic Loma Loma-Oblique Loma-Bold Loma-BoldOblique TlwgMono TlwgMono-Oblique TlwgMono-Bold TlwgMono-BoldOblique TlwgTypewriter TlwgTypewriter-Oblique TlwgTypewriter-Bold TlwgTypewriter-BoldOblique TlwgTypist TlwgTypist-Oblique TlwgTypist-Bold TlwgTypist-BoldOblique Sawasdee Sawasdee-Oblique Sawasdee-Bold Sawasdee-BoldOblique Waree Waree-Oblique Waree-Bold Waree-BoldOblique Umpush-Light Umpush-LightOblique Umpush Umpush-Oblique Umpush-Bold Umpush-BoldOblique Purisa" PHRASE="\340\264\347\241\241\265\321\255\220\331\340\275\207\322\344\242\214\244\330\263\273\331\206\315\302\331\213\267\325\350\272\214\322\271\303\324\301\271\355\351\322" POEM_L1="\340\273\232\271\301\271\330\311\302\217\312\330\264\273\303\320\340\312\303\324\260\340\305\324\310\244\330\263\244\213\322" POEM_L2="\241\307\213\322\272\303\303\264\322\275\331\247\312\321\265\307\217\340\264\303\321\250\251\322\271" POEM_L3="\250\247\275\206\322\277\230\271\276\321\262\271\322\307\324\252\322\241\322\303" POEM_L4="\315\302\213\322\305\214\322\247\274\305\322\255\304\345\340\242\213\271\246\213\322\272\325\261\322\343\244\303" POEM_L5="\344\301\213\266\327\315\342\267\311\342\241\303\270\341\252\213\247\253\321\264\316\326\264\316\321\264\264\213\322" POEM_L6="\313\321\264\315\300\321\302\340\313\301\327\315\271\241\325\314\322\315\321\252\254\322\312\321\302" POEM_L7="\273\257\324\272\321\265\324\273\303\320\276\304\265\324\241\256\241\355\322\313\271\264\343\250" POEM_L8="\276\331\264\250\322\343\313\214\250\215\320\346 \250\216\322\346 \271\213\322\277\230\247\340\315\302\317" CIT="\305\324\242\312\324\267\270\324\354\342\264\302 \312\301\322\244\301\244\315\301\276\324\307\340\265\315\303\217\341\313\213\247\273\303\320\340\267\310\344\267\302\343\271\276\303\320\272\303\301\303\322\252\331\273\266\321\301\300\217" cat < Fontmap /Garuda (${top_builddir}nf/${fprefix}Garuda${fsuffix}); /Garuda-Oblique (${top_builddir}nf/${fprefix}Garuda-Oblique${fsuffix}); /Garuda-Bold (${top_builddir}nf/${fprefix}Garuda-Bold${fsuffix}); /Garuda-BoldOblique (${top_builddir}nf/${fprefix}Garuda-BoldOblique${fsuffix}); /Kinnari (${top_builddir}nf/${fprefix}Kinnari${fsuffix}); /Kinnari-Oblique (${top_builddir}nf/${fprefix}Kinnari-Oblique${fsuffix}); /Kinnari-Italic (${top_builddir}nf/${fprefix}Kinnari-Italic${fsuffix}); /Kinnari-Bold (${top_builddir}nf/${fprefix}Kinnari-Bold${fsuffix}); /Kinnari-BoldOblique (${top_builddir}nf/${fprefix}Kinnari-BoldOblique${fsuffix}); /Kinnari-BoldItalic (${top_builddir}nf/${fprefix}Kinnari-BoldItalic${fsuffix}); /Norasi (${top_builddir}nf/${fprefix}Norasi${fsuffix}); /Norasi-Oblique (${top_builddir}nf/${fprefix}Norasi-Oblique${fsuffix}); /Norasi-Italic (${top_builddir}nf/${fprefix}Norasi-Italic${fsuffix}); /Norasi-Bold (${top_builddir}nf/${fprefix}Norasi-Bold${fsuffix}); /Norasi-BoldOblique (${top_builddir}nf/${fprefix}Norasi-BoldOblique${fsuffix}); /Norasi-BoldItalic (${top_builddir}nf/${fprefix}Norasi-BoldItalic${fsuffix}); /Loma (${top_builddir}nectec/${fprefix}Loma${fsuffix}); /Loma-Oblique (${top_builddir}nectec/${fprefix}Loma-Oblique${fsuffix}); /Loma-Bold (${top_builddir}nectec/${fprefix}Loma-Bold${fsuffix}); /Loma-BoldOblique (${top_builddir}nectec/${fprefix}Loma-BoldOblique${fsuffix}); /TlwgMono (${top_builddir}tlwg/${fprefix}TlwgMono${fsuffix}); /TlwgMono-Oblique (${top_builddir}tlwg/${fprefix}TlwgMono-Oblique${fsuffix}); /TlwgMono-Bold (${top_builddir}tlwg/${fprefix}TlwgMono-Bold${fsuffix}); /TlwgMono-BoldOblique (${top_builddir}tlwg/${fprefix}TlwgMono-BoldOblique${fsuffix}); /TlwgTypewriter (${top_builddir}tlwg/${fprefix}TlwgTypewriter${fsuffix}); /TlwgTypewriter-Oblique (${top_builddir}tlwg/${fprefix}TlwgTypewriter-Oblique${fsuffix}); /TlwgTypewriter-Bold (${top_builddir}tlwg/${fprefix}TlwgTypewriter-Bold${fsuffix}); /TlwgTypewriter-BoldOblique (${top_builddir}tlwg/${fprefix}TlwgTypewriter-BoldOblique${fsuffix}); /TlwgTypist (${top_builddir}tlwg/${fprefix}TlwgTypist${fsuffix}); /TlwgTypist-Oblique (${top_builddir}tlwg/${fprefix}TlwgTypist-Oblique${fsuffix}); /TlwgTypist-Bold (${top_builddir}tlwg/${fprefix}TlwgTypist-Bold${fsuffix}); /TlwgTypist-BoldOblique (${top_builddir}tlwg/${fprefix}TlwgTypist-BoldOblique${fsuffix}); /Sawasdee (${top_builddir}tlwg/${fprefix}Sawasdee${fsuffix}); /Sawasdee-Oblique (${top_builddir}tlwg/${fprefix}Sawasdee-Oblique${fsuffix}); /Sawasdee-Bold (${top_builddir}tlwg/${fprefix}Sawasdee-Bold${fsuffix}); /Sawasdee-BoldOblique (${top_builddir}tlwg/${fprefix}Sawasdee-BoldOblique${fsuffix}); /Waree (${top_builddir}tlwg/${fprefix}Waree${fsuffix}); /Waree-Oblique (${top_builddir}tlwg/${fprefix}Waree-Oblique${fsuffix}); /Waree-Bold (${top_builddir}tlwg/${fprefix}Waree-Bold${fsuffix}); /Waree-BoldOblique (${top_builddir}tlwg/${fprefix}Waree-BoldOblique${fsuffix}); /Umpush-Light (${top_builddir}tlwg/${fprefix}Umpush-Light${fsuffix}); /Umpush-LightOblique (${top_builddir}tlwg/${fprefix}Umpush-LightOblique${fsuffix}); /Umpush (${top_builddir}tlwg/${fprefix}Umpush${fsuffix}); /Umpush-Oblique (${top_builddir}tlwg/${fprefix}Umpush-Oblique${fsuffix}); /Umpush-Bold (${top_builddir}tlwg/${fprefix}Umpush-Bold${fsuffix}); /Umpush-BoldOblique (${top_builddir}tlwg/${fprefix}Umpush-BoldOblique${fsuffix}); /Purisa (${top_builddir}tlwg/${fprefix}Purisa${fsuffix}); END for font in $FONTS; do # # Create Postscript first # cat < ${font}.ps # output encoding /cm {28.35 mul} def /TIS-620-2Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /uni0E10.descless /uni0E34.left /uni0E35.left /uni0E36.left /uni0E37.left /ellipsis /uni0E48.low_left /uni0E49.low_left /uni0E4A.low_left /uni0E4B.low_left /uni0E4C.low_left /uni0E48.low /uni0E49.low /uni0E4A.low /uni0E4B.low /uni0E4C.low /uni0E0D.descless /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash /uni0E31.left /uni0E4D.left /uni0E47.left /uni0E48.left /uni0E49.left /uni0E4A.left /uni0A4B.left /uni0E4C.left /nonbreakingspace /uni0E01 /uni0E02 /uni0E03 /uni0E04 /uni0E05 /uni0E06 /uni0E07 /uni0E08 /uni0E09 /uni0E0A /uni0E0B /uni0E0C /uni0E0D /uni0E0E /uni0E0F /uni0E10 /uni0E11 /uni0E12 /uni0E13 /uni0E14 /uni0E15 /uni0E16 /uni0E17 /uni0E18 /uni0E19 /uni0E1A /uni0E1B /uni0E1C /uni0E1D /uni0E1E /uni0E1F /uni0E20 /uni0E21 /uni0E22 /uni0E23 /uni0E24 /uni0E25 /uni0E26 /uni0E27 /uni0E28 /uni0E29 /uni0E2A /uni0E2B /uni0E2C /uni0E2D /uni0E2E /uni0E2F /uni0E30 /uni0E31 /uni0E32 /uni0E33 /uni0E34 /uni0E35 /uni0E36 /uni0E37 /uni0E38 /uni0E39 /uni0E3A /.notdef /.notdef /.notdef /.notdef /uni0E3F /uni0E40 /uni0E41 /uni0E42 /uni0E43 /uni0E44 /uni0E45 /uni0E46 /uni0E47 /uni0E48 /uni0E49 /uni0E4A /uni0E4B /uni0E4C /uni0E4D /uni0E4E /uni0E4F /uni0E50 /uni0E51 /uni0E52 /uni0E53 /uni0E54 /uni0E55 /uni0E56 /uni0E57 /uni0E58 /uni0E59 /uni0E5A /uni0E5B /uni0E38.low /uni0E39.low /uni0E3A.low /dottedcircle ] readonly def /RE { % /NewFontName [NewEncodingArray] /FontName RE - findfont dup length dict begin { % copy font dictionary into new dict 1 index /FID ne {def} {pop pop} ifelse } forall /Encoding exch def /FontName 1 index def currentdict definefont pop end } bind def /CurrentV 26 cm def /${font}-TIS-620-2 TIS-620-2Encoding /$font RE /${font}-TIS-620-2 findfont 24 scalefont setfont 2 cm CurrentV moveto (${font}) show /CurrentV CurrentV 24 sub def EOF # # Print a Thai text sample for each size (point) # for point in 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24; do cat <> ${font}.ps %% $point pt /${font}-TIS-620-2 findfont $point scalefont setfont 2 cm CurrentV moveto (${point}pt) show 4 cm CurrentV moveto (${PHRASE}) show /CurrentV CurrentV $point sub def EOF done # # Print a English text sample for each size (point) # for point in 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24; do cat <> ${font}.ps %% $point pt /${font}-TIS-620-2 findfont $point scalefont setfont 2 cm CurrentV moveto (${point}pt) show 4 cm CurrentV moveto (The quick brown fox jumps over the lazy dog.) show /CurrentV CurrentV $point sub def EOF done echo showpage >> ${font}.ps # # Output the poem # point=16 cat <> ${font}.ps /CurrentV 20 cm def /${font}-TIS-620-2 findfont $point scalefont setfont 4 cm CurrentV moveto ($POEM_L1) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L2) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L3) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L4) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L5) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L6) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L7) show /CurrentV CurrentV $point sub def 4 cm CurrentV moveto ($POEM_L8) show /CurrentV CurrentV $point $point add sub def 4 cm CurrentV moveto /${font}-TIS-620-2 findfont 9 scalefont setfont ($CIT) show showpage EOF # # Make glyph table (DoFont) # cat <> ${font}.ps %% DoFont (prfont.ps) runlibfile /$font DoFont EOF gs -sOutputFile=${fprefix}${font}${fsuffix}.pdf -sDEVICE=pdfwrite -dNOPAUSE -dBATCH ${font}.ps rm ${font}.ps echo ----- Wrote ${fprefix}${font}${fsuffix}.pdf ----- done rm -f Fontmap