| #!/usr/bin/perl | |
| # | |
| # Get the width of a PostScript string in PostScript points (1/72") | |
| # given a set of font metrics and an encoding vector. | |
| # | |
| sub ps_width($$$) { | |
| my($str, $met, $encoding) = @_; | |
| my($w) = 0; | |
| my($i,$c,$p); | |
| $l = length($str); | |
| undef $p; | |
| for ( $i = 0 ; $i < $l ; $i++ ) { | |
| $c = substr($str,$i,1); | |
| $w += $$met{widths}{$encoding->[ord($c)]}; | |
| # The standard PostScript "show" operator doesn't do kerning. | |
| # $w += $$met{kern}{$p.$c}; | |
| $p = $c; | |
| } | |
| return $w / $met->{scale}; | |
| } | |
| # OK | |
| 1; |