home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User 10
/
AU_CD10.iso
/
Updates
/
Perl
/
Perl_Libs
/
site_perl
/
Font
/
make_metrics.pl
< prev
Wrap
Perl Script
|
1996-02-05
|
2KB
|
77 lines
#!/usr/local/bin/perl -w
# $Id: make_metrics.pl,v 1.2 1996/02/05 19:17:42 aas Exp $
#
# This program creates metrics modules for some fonts and place them
# under the "Metrics" directory.
#
# Author: Gisle Aas
@FONTS = qw(Courier
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Helvetica
Helvetica-Bold
Helvetica-Oblique
Helvetica-BoldOblique
Times-Roman
Times-Bold
Times-Italic
Times-BoldItalic
);
@FONTS = @ARGV if @ARGV;
require Font::AFM;
$0 =~ s,.*/,,;
mkdir("Metrics", 0755);
for $font (@FONTS) {
eval {
$afm = new Font::AFM $font;
};
if ($@) {
print $@;
next;
}
@wx = $afm->latin1_wx_table;
($fontmod = $font) =~ s/-//g;
open(FONTDEF, ">Metrics/$fontmod.pm") or die "Can't open $fontmod.pm: $!";
select FONTDEF;
print "# Font metrics for $font\n#\n";
print "# DO NOT EDIT!!!\n";
print "#\n";
print "# This file was auto-generated by $0 based on the AFM file for the font.\n";
print "#\n# ", $afm->Notice, "\n";
print "\n";
print "package Font::Metrics::$fontmod;\n";
print "\n# Character width table (iso-8859-1)\n";
print "\@wx = (\n";
$i = 0;
for (@wx) {
printf " %.3g,", $_ / 1000;
unless (++$i % 8) {
print "\n";
}
}
print ");\n";
$upos = $afm->UnderlinePosition;
$uthick = $afm->UnderlineThickness;
if ($upos && $uthick) {
print "\n";
printf "\$UnderlinePosition = %.3g;\n", $upos/1000;
printf "\$UnderlineThickness = %.3g;\n", $uthick/1000;
}
print "\n1;\n";
}