home *** CD-ROM | disk | FTP | other *** search
-
-
- =head1 NAME
-
- Font::AFM - Interface to Adobe Font Metrics files
-
- =head1 SYNOPSIS
-
- use Font::AFM;
- $h = new Font::AFM "Helvetica";
- $copyright = $h->Notice;
- $w = $h->Wx->{"aring"};
- $w = $h->stringwidth("Gisle", 10);
- $h->dump; # for debugging
-
- =head1 DESCRIPTION
-
- This module implements the Font::AFM class. Objects of this class are
- initialised from an AFM-file and allows you to obtain information
- about the font and the metrics of the various glyphs in the font.
-
- All measurements in AFM files are given in terms of units equal to
- 1/1000 of the scale factor of the font being used. To compute actual
- sizes in a document, these amounts should be multiplied by (scale
- factor of font)/1000.
-
- The following methods are available:
-
- =over 3
-
- =item $afm = Font::AFM->new($fontname)
-
- Object constructor. Takes the name of the font as argument. It will
- croak if the font can not be found.
-
- =item $afm->latin1_wx_table()
-
- Returns a 256 element array, where each element contains the width
- of the corresponding character in the iso-8859-1 character set.
-
- =item $afm->stringwidth($string, [$fontsize])
-
- Returns the width of the string passed as argument. The string is
- assumed to be encoded in the iso-8859-1 character set. A second
- argument can be used to scale the width according to the font size.
-
- =item $afm->FontName
-
- The name of the font as presented to the PostScript language
- C<findfont> operator, for instance "Times-Roman".
-
- =item $afm->FullName
-
- Unique, human-readable name for an individual font, for instance
- "Times Roman".
-
- =item $afm->FamilyName
-
- Human-readable name for a group of fonts that are stylistic variants
- of a single design. All fonts that are member of such a group should
- have exactly the same C<FamilyName>. Example of a family name is
- "Times".
-
- =item $afm->Weight
-
- Human-readable name for the weight, or "boldness", attribute of a font.
- Exampes are C<Roman>, C<Bold>, C<Light>.
-
- =item $afm->ItalicAngle
-
- Angle in degrees counterclockwise from the vertical of the dominant
- vertical strokes of the font.
-
- =item $afm->IsFixedPitch
-
- If the value is C<true>, it indicated that the font is a fixed-pitch
- (monospaced) font.
-
- =item $afm->FontBBox
-
- A string of four numbers giving the lower-left x, lower-left y,
- upper-right x, and upper-right y of the font bounding box. The font
- bounding box is the smallest rectangle enclosing the shape that would
- result if all the characters of the font were placed with their
- origins coincident, and then painted.
-
- =item $afm->UnderlinePosition
-
- Recommended distance from the baseline for positioning underline
- stokes. This number is the y coordinate of the center of the stroke.
-
- =item $afm->UnderlineThickness
-
- Recommended stroke width for underlining.
-
- =item $afm->Version
-
- Version number of the font.
-
- =item $afm->Notice
-
- Trademark or copyright notice, if applicable.
-
- =item $afm->Comment
-
- Comments found in the AFM file.
-
- =item $afm->EncodingScheme
-
- The name of the standard encoding scheme for the font. Most Adobe
- fonts use the C<AdobeStandardEncoding>. Special fonts might state
- C<FontSpecific>.
-
- =item $afm->CapHeight
-
- Usually the y-value of the top of the capital H.
-
- =item $afm->XHeight
-
- Typically the y-value of the top of the lowercase x.
-
- =item $afm->Ascender
-
- Typically the y-value of the top of the lowercase d.
-
- =item $afm->Descender
-
- Typically the y-value of the bottom of the lowercase p.
-
- =item $afm->Wx
-
- Returns a hash table that maps from glyph names to the width of that glyph.
-
- =item $afm->BBox
-
- Returns a hash table that maps from glyph names to bounding box information.
- The bounding box consist of 4 numbers: llx, lly, urx, ury.
-
- =item $afm->dump
-
- Dumps the content of the Font::AFM object to STDOUT. Might sometimes
- be useful for debugging.
-
- =back
-