Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.fop.fonts.truetype
Class TTFFile

    java.lang.Object
      org.apache.fop.fonts.truetype.TTFFile

Direct Known Subclasses:
  TTFSubSetFile

public class TTFFile
extends java.lang.Object

Reads a TrueType file or a TrueType Collection. The TrueType spec can be found at the Microsoft. Typography site: http://www.microsoft.com/truetype/

Field Summary
`protected java.util.Map` | `dirTabs` Table directory
`protected long` | `lastLoca` Offset to last loca
`protected org.apache.commons.logging.Log` | `log` logging instance
`protected org.apache.fop.fonts.truetype.TTFMtxEntry[]` | `mtxTab` Contains glyph data
`static boolean` | `TRACE_ENABLED` Set to true to get even more debug output than with level DEBUG

Constructor Summary
`TTFFile()`

Method Summary
`protected boolean` | `checkTTC(FontFileReader in, java.lang.String name)` Check if this is a TrueType collection and that the given name exists in the collection.
`int` | `convertTTFUnit2PDFUnit(int n)` Convert from truetype unit to pdf unit based on the unitsPerEm field in the "head" table
`java.util.Map` | `getAnsiKerning()` Returns the ANSI kerning table.
`int` | `getCapHeight()` Returns the CapHeight attribute of the font.
`java.lang.String` | `getCharSetName()` Returns the name of the character set used.
`int` | `getCharWidth(int idx)` Returns the width of a given character.
`java.util.List` | `getCMaps()` Return a List with TTFCmapEntry.
`java.util.Set` | `getFamilyNames()` Returns the font family names of the font.
`short` | `getFirstChar()` Returns the index of the first character.
`int` | `getFlags()` Returns the Flags attribute of the font.
`int[]` | `getFontBBox()` Returns the font bounding box.
`java.lang.String` | `getFullName()` Returns the full name of the font.
`java.lang.String` | `getItalicAngle()` Returns the ItalicAngle attribute of the font.
`java.util.Map` | `getKerning()` Returns the kerning table.
`short` | `getLastChar()` Returns the index of the last character, but this is for WinAnsiEncoding only, so the last char is < 256.
`int` | `getLowerCaseAscent()` Returns the LowerCaseAscent attribute of the font.
`int` | `getLowerCaseDescent()` Returns the LowerCaseDescent attribute of the font.
`protected void` | `getNumGlyphs(FontFileReader in)` Read the number of glyphs from the "maxp" table
`java.lang.String` | `getPostScriptName()` Returns the PostScript name of the font.
`java.lang.String` | `getStemV()` Returns the StemV attribute of the font.
`java.lang.String` | `getSubFamilyName()` Returns the font sub family name of the font.
`java.util.List` | `getTTCnames(FontFileReader in)` Return TTC font names
`int` | `getWeightClass()` Returns the weight class of this font.
`int[]` | `getWidths()` Returns an array of character widths.
`int` | `getXHeight()` Returns the XHeight attribute of the font.
`boolean` | `isCFF()` Indicates whether or not the font is an OpenType CFF font (rather than a TrueType font).
`boolean` | `isEmbeddable()` Indicates if the font may be embedded.
`static void` | `main(java.lang.String[] args)` Static main method to get info about a TrueType font.
`void` | `printStuff()` Dumps a few informational values to System.out.
`protected void` | `readDirTabs(FontFileReader in)` Read Table Directory from the current position in the FontFileReader and fill the global HashMap dirTabs with the table name (String) as key and a TTFDirTabEntry as value.
`void` | `readFont(FontFileReader in)` Reads the font using a FontFileReader.
`boolean` | `readFont(FontFileReader in, java.lang.String name)` Read the font data.
`protected void` | `readFontHeader(FontFileReader in)` Read the "head" table, this reads the bounding box and sets the upem (unitsPerEM) variable
`protected void` | `readHorizontalHeader(FontFileReader in)` Read the "hhea" table to find the ascender and descender and size of "hmtx" table, as a fixed size font might have only one width.
`protected void` | `readHorizontalMetrics(FontFileReader in)` Read "hmtx" table and put the horizontal metrics in the mtxTab array.
`protected void` | `readIndexToLocation(FontFileReader in)` Read the "loca" table.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TRACE_ENABLED

    public static final boolean TRACE_ENABLED

  Set to true to get even more debug output than with level DEBUG

  See Also:
    Constant Field Values

### dirTabs

    protected java.util.Map dirTabs

  Table directory

### lastLoca

    protected long lastLoca

  Offset to last loca

### mtxTab

    protected org.apache.fop.fonts.truetype.TTFMtxEntry[] mtxTab

  Contains glyph data

### log

    protected org.apache.commons.logging.Log log

  logging instance

Constructor Detail

### TTFFile

    public TTFFile()

Method Detail

### convertTTFUnit2PDFUnit

    public int convertTTFUnit2PDFUnit(int n)

  Convert from truetype unit to pdf unit based on the unitsPerEm field in the "head" table

  Parameters:
    `n` - truetype unit
  Returns:
    pdf unit

### readFont

    public void readFont(FontFileReader in)
                  throws java.io.IOException

  Reads the font using a FontFileReader.

  Parameters:
    `in` - The FontFileReader to use
  Throws:
    `java.io.IOException` - In case of an I/O problem

### readFont

    public boolean readFont(FontFileReader in,
                            java.lang.String name)
                     throws java.io.IOException

  Read the font data. If the fontfile is a TrueType Collection (.ttc file) the name of the font to read data for must be supplied, else the name is ignored.

  Parameters:
    `in` - The FontFileReader to use
    `name` - The name of the font
  Returns:
    boolean Returns true if the font is valid
  Throws:
    `java.io.IOException` - In case of an I/O problem

### getPostScriptName

    public java.lang.String getPostScriptName()

  Returns the PostScript name of the font.

  Returns:
    String The PostScript name

### getFamilyNames

    public java.util.Set getFamilyNames()

  Returns the font family names of the font.

  Returns:
    Set The family names (a Set of Strings)

### getSubFamilyName

    public java.lang.String getSubFamilyName()

  Returns the font sub family name of the font.

  Returns:
    String The sub family name

### getFullName

    public java.lang.String getFullName()

  Returns the full name of the font.

  Returns:
    String The full name

### getCharSetName

    public java.lang.String getCharSetName()

  Returns the name of the character set used.

  Returns:
    String The caracter set

### getCapHeight

    public int getCapHeight()

  Returns the CapHeight attribute of the font.

  Returns:
    int The CapHeight

### getXHeight

    public int getXHeight()

  Returns the XHeight attribute of the font.

  Returns:
    int The XHeight

### getFlags

    public int getFlags()

  Returns the Flags attribute of the font.

  Returns:
    int The Flags

### getWeightClass

    public int getWeightClass()

  Returns the weight class of this font. Valid values are 100, 200....,800, 900.

  Returns:
    the weight class value (or 0 if there was no OS/2 table in the font)

### getStemV

    public java.lang.String getStemV()

  Returns the StemV attribute of the font.

  Returns:
    String The StemV

### getItalicAngle

    public java.lang.String getItalicAngle()

  Returns the ItalicAngle attribute of the font.

  Returns:
    String The ItalicAngle

### getFontBBox

    public int[] getFontBBox()

  Returns the font bounding box.

  Returns:
    int[] The font bbox

### getLowerCaseAscent

    public int getLowerCaseAscent()

  Returns the LowerCaseAscent attribute of the font.

  Returns:
    int The LowerCaseAscent

### getLowerCaseDescent

    public int getLowerCaseDescent()

  Returns the LowerCaseDescent attribute of the font.

  Returns:
    int The LowerCaseDescent

### getLastChar

    public short getLastChar()

  Returns the index of the last character, but this is for WinAnsiEncoding only, so the last char is < 256.

  Returns:
    short Index of the last character (<256)

### getFirstChar

    public short getFirstChar()

  Returns the index of the first character.

  Returns:
    short Index of the first character

### getWidths

    public int[] getWidths()

  Returns an array of character widths.

  Returns:
    int[] The character widths

### getCharWidth

    public int getCharWidth(int idx)

  Returns the width of a given character.

  Parameters:
    `idx` - Index of the character
  Returns:
    int Standard width

### getKerning

    public java.util.Map getKerning()

  Returns the kerning table.

  Returns:
    Map The kerning table

### getAnsiKerning

    public java.util.Map getAnsiKerning()

  Returns the ANSI kerning table.

  Returns:
    Map The ANSI kerning table

### isEmbeddable

    public boolean isEmbeddable()

  Indicates if the font may be embedded.

  Returns:
    boolean True if it may be embedded

### isCFF

    public boolean isCFF()

  Indicates whether or not the font is an OpenType CFF font (rather than a TrueType font).

  Returns:
    true if the font is in OpenType CFF format.

### readDirTabs

    protected void readDirTabs(FontFileReader in)
                        throws java.io.IOException

  Read Table Directory from the current position in the FontFileReader and fill the global HashMap dirTabs with the table name (String) as key and a TTFDirTabEntry as value.

  Parameters:
    `in` - FontFileReader to read the table directory from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### readFontHeader

    protected void readFontHeader(FontFileReader in)
                           throws java.io.IOException

  Read the "head" table, this reads the bounding box and sets the upem (unitsPerEM) variable

  Parameters:
    `in` - FontFileReader to read the header from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### getNumGlyphs

    protected void getNumGlyphs(FontFileReader in)
                         throws java.io.IOException

  Read the number of glyphs from the "maxp" table

  Parameters:
    `in` - FontFileReader to read the number of glyphs from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### readHorizontalHeader

    protected void readHorizontalHeader(FontFileReader in)
                                 throws java.io.IOException

  Read the "hhea" table to find the ascender and descender and size of "hmtx" table, as a fixed size font might have only one width.

  Parameters:
    `in` - FontFileReader to read the hhea table from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### readHorizontalMetrics

    protected void readHorizontalMetrics(FontFileReader in)
                                  throws java.io.IOException

  Read "hmtx" table and put the horizontal metrics in the mtxTab array. If the number of metrics is less than the number of glyphs (eg fixed size fonts), extend the mtxTab array and fill in the missing widths

  Parameters:
    `in` - FontFileReader to read the hmtx table from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### readIndexToLocation

    protected final void readIndexToLocation(FontFileReader in)
                                      throws java.io.IOException

  Read the "loca" table.

  Parameters:
    `in` - FontFileReader to read from
  Throws:
    `java.io.IOException` - In case of a I/O problem

### getCMaps

    public java.util.List getCMaps()

  Return a List with TTFCmapEntry.

  Returns:
    A list of TTFCmapEntry objects

### checkTTC

    protected final boolean checkTTC(FontFileReader in,
                                     java.lang.String name)
                              throws java.io.IOException

  Check if this is a TrueType collection and that the given name exists in the collection. If it does, set offset in fontfile to the beginning of the Table Directory for that font.

  Parameters:
    `in` - FontFileReader to read from
    `name` - The name to check
  Returns:
    True if not collection or font name present, false otherwise
  Throws:
    `java.io.IOException` - In case of an I/O problem

### getTTCnames

    public final java.util.List getTTCnames(FontFileReader in)
                                     throws java.io.IOException

  Return TTC font names

  Parameters:
    `in` - FontFileReader to read from
  Returns:
    True if not collection or font name present, false otherwise
  Throws:
    `java.io.IOException` - In case of an I/O problem

### printStuff

    public void printStuff()

  Dumps a few informational values to System.out.

### main

    public static void main(java.lang.String[] args)

  Static main method to get info about a TrueType font.

  Parameters:
    `args` - The command line arguments

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 1999-2010 The Apache Software Foundation. All Rights Reserved.