org.apache.fop.fonts.type1

## Class PFMFile

- java.lang.Object
- - org.apache.fop.fonts.type1.PFMFile

    public class PFMFile
    extends Object

This class represents a PFM file (or parts of it) as a Java object.

### Field Summary

Fields
`protected org.apache.commons.logging.Log` `log` logging instance

### Constructor Summary

Constructors
Constructor and Description
`PFMFile()`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `getCapHeight()` Returns the CapHeight parameter for the font (height of uppercase H).
`short` `getCharSet()` Returns the charset used for the font.
`String` `getCharSetName()` Returns the charset of the font as a string.
`int` `getCharWidth(short which)` Returns the width of a character
`short` `getFirstChar()` Returns the number of the character that defines the first entry in the widths list.
`int` `getFlags()` Returns the characteristics flags for the font as needed for a PDF font descriptor (See PDF specs).
`int[]` `getFontBBox()` Returns the bounding box for the font.
`boolean` `getIsProportional()` Tells whether the font has proportional character spacing.
`int` `getItalicAngle()` Returns the italic angle of the font.
`Map<Integer,Map<Integer,Integer>>` `getKerning()` Return the kerning table.
`short` `getLastChar()` Returns the number of the character that defines the last entry in the widths list.
`int` `getLowerCaseAscent()` Returns the LowerCaseAscent parameter for the font (height of lowercase d).
`int` `getLowerCaseDescent()` Returns the LowerCaseDescent parameter for the font (height of lowercase p).
`String` `getPostscriptName()` Returns the Postscript name of the font.
`int` `getStemV()` Returns the width of the dominant vertical stems of the font.
`String` `getWindowsName()` Returns the Windows name of the font.
`int` `getXHeight()` Returns the XHeight parameter for the font (height of lowercase x).
`boolean` `isNonSymbolic()` Indicates whether the font is non-symbolic (Font uses the Adobe standard Latin character set or a subset of it).
`void` `load(InputStream inStream)` Parses a PFM file

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### log

    protected org.apache.commons.logging.Log log

logging instance

### Constructor Detail

#### PFMFile

    public PFMFile()

### Method Detail

#### load

    public void load(InputStream inStream)
              throws IOException

Parses a PFM file

Parameters:
  `inStream` - The stream from which to read the PFM file.
Throws:
  `IOException` - In case of an I/O problem

#### getWindowsName

    public String getWindowsName()

Returns the Windows name of the font.

Returns:
  The Windows name.

#### getKerning

    public Map<Integer,Map<Integer,Integer>> getKerning()

Return the kerning table. The kerning table is a Map with strings with glyphnames as keys, containing Maps as value. The value map contains a glyph name string key and an Integer value

Returns:
  A Map containing the kerning table

#### getPostscriptName

    public String getPostscriptName()

Returns the Postscript name of the font.

Returns:
  The Postscript name.

#### getCharSet

    public short getCharSet()

Returns the charset used for the font.

Returns:
  The charset (0=WinAnsi).

#### getCharSetName

    public String getCharSetName()

Returns the charset of the font as a string.

Returns:
  The name of the charset.

#### getFirstChar

    public short getFirstChar()

Returns the number of the character that defines the first entry in the widths list.

Returns:
  The number of the first character.

#### getLastChar

    public short getLastChar()

Returns the number of the character that defines the last entry in the widths list.

Returns:
  The number of the last character.

#### getCapHeight

    public int getCapHeight()

Returns the CapHeight parameter for the font (height of uppercase H).

Returns:
  The CapHeight parameter.

#### getXHeight

    public int getXHeight()

Returns the XHeight parameter for the font (height of lowercase x).

Returns:
  The CapHeight parameter.

#### getLowerCaseAscent

    public int getLowerCaseAscent()

Returns the LowerCaseAscent parameter for the font (height of lowercase d).

Returns:
  The LowerCaseAscent parameter.

#### getLowerCaseDescent

    public int getLowerCaseDescent()

Returns the LowerCaseDescent parameter for the font (height of lowercase p).

Returns:
  The LowerCaseDescent parameter.

#### getIsProportional

    public boolean getIsProportional()

Tells whether the font has proportional character spacing.

Returns:
  ex. true for Times, false for Courier.

#### getFontBBox

    public int[] getFontBBox()

Returns the bounding box for the font. Note: this value is just an approximation, it does not really exist in the PFM file.

Returns:
  The calculated Font BBox.

#### isNonSymbolic

    public boolean isNonSymbolic()

Indicates whether the font is non-symbolic (Font uses the Adobe standard Latin character set or a subset of it).

Returns:
  true if the font is non-symbolic

#### getFlags

    public int getFlags()

Returns the characteristics flags for the font as needed for a PDF font descriptor (See PDF specs).

Returns:
  The characteristics flags.

#### getStemV

    public int getStemV()

Returns the width of the dominant vertical stems of the font. Note: this value is just an approximation, it does not really exist in the PFM file.

Returns:
  The vertical stem width.

#### getItalicAngle

    public int getItalicAngle()

Returns the italic angle of the font. Note: this value is just an approximation, it does not really exist in the PFM file.

Returns:
  The italic angle.

#### getCharWidth

    public int getCharWidth(short which)

Returns the width of a character

Parameters:
  `which` - The number of the character for which the width is requested.
Returns:
  The width of a character.