# author : Hans Hagen / PRAGMA-ADE / www.pragma-ade.com / 07-12-2003 # script : splits ttf file into series pfb's using ttf2pt1 & afm2tfm # usage : ttftfmxx filename.ttf [from plane] [to plane] unless ($ARGV[0]) { print "provide ttf filename\n" ; exit } ($filename,$filetype) = split(/\./, $ARGV[0]) ; $filetype = 'ttf' unless $filetype ; unless (lc $filetype eq 'ttf') { print "provide ttf filename\n" ; exit } $mapfile = $filename . "xx.map" ; $from = $ARGV[1] ; $to = $ARGV[2] ; if ($from eq '') { $from = 0 ; $to = 2 } elsif ($to eq '') { $to = $from ; $from = 0 } $from = 255 if ($from>255) ; $to = 255 if ($to >255) ; open(MAP,">$mapfile") ; for ($i=$from;$i<=$to;$i++) { $str = sprintf("%02x",$i) ; $splitname = "$filename$str" ; system("ttf2pt1 -l plane+0x$str -W 0 -b $filename.$filetype $splitname") ; system("afm2tfm $splitname.afm $splitname.tfm") ; unlink "$splitname.afm" ; print MAP "$splitname <$splitname.pfb\n" } close(MAP) ; print "ttffile : $filename.$filetype\n" ; print "tfmfile : $filename$from.tfm .. $filename$to.tfm\n" ; print "mapfile : $mapfile\n" ;