#!/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; |