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

## com.lowagie.text.pdf
Class TrueTypeFontSubSet

    java.lang.Object
      com.lowagie.text.pdf.TrueTypeFontSubSet

     class TrueTypeFontSubSet

extends Object

Subsets a True Type font by removing the unneeded glyphs from the font.

Author:
  Paulo Soares (psoares@consiste.pt)

Field Summary
`(package private) static int` | `ARG_1_AND_2_ARE_WORDS`
`protected int` | `directoryOffset`
`(package private) static int[]` | `entrySelectors`
`protected String` | `fileName` The file name.
`protected int` | `fontPtr`
`protected int` | `glyfTableRealSize`
`protected ArrayList` | `glyphsInList`
`protected HashMap` | `glyphsUsed`
`(package private) static int` | `HEAD_LOCA_FORMAT_OFFSET`
`protected boolean` | `includeCmap`
`protected boolean` | `includeExtras`
`protected boolean` | `locaShortTable`
`protected int[]` | `locaTable`
`protected int` | `locaTableRealSize`
`(package private) static int` | `MORE_COMPONENTS`
`protected byte[]` | `newGlyfTable`
`protected int[]` | `newLocaTable`
`protected byte[]` | `newLocaTableOut`
`protected byte[]` | `outFont`
`protected RandomAccessFileOrArray` | `rf` The file in use.
`(package private) static int` | `TABLE_CHECKSUM`
`(package private) static int` | `TABLE_LENGTH`
`(package private) static int` | `TABLE_OFFSET`
`protected HashMap` | `tableDirectory` Contains the location of the several tables.
`protected int` | `tableGlyphOffset`
`(package private) static String[]` | `tableNamesCmap`
`(package private) static String[]` | `tableNamesExtra`
`(package private) static String[]` | `tableNamesSimple`
`(package private) static int` | `WE_HAVE_A_SCALE`
`(package private) static int` | `WE_HAVE_A_TWO_BY_TWO`
`(package private) static int` | `WE_HAVE_AN_X_AND_Y_SCALE`

Constructor Summary
`TrueTypeFontSubSet(String fileName, RandomAccessFileOrArray rf, HashMap glyphsUsed, int directoryOffset, boolean includeCmap, boolean includeExtras)` Creates a new TrueTypeFontSubSet

Method Summary
`protected void` | `assembleFont()`
`protected int` | `calculateChecksum(byte[] b)`
`protected void` | `checkGlyphComposite(int glyph)`
`protected void` | `createNewGlyphTables()`
`protected void` | `createTableDirectory()`
`protected void` | `flatGlyphs()`
`protected void` | `locaTobytes()`
`(package private) byte[]` | `process()` Does the actual work of subsetting the font.
`protected void` | `readLoca()`
`protected String` | `readStandardString(int length)` Reads a `String` from the font file as bytes using the Cp1252 encoding.
`protected void` | `writeFontInt(int n)`
`protected void` | `writeFontShort(int n)`
`protected void` | `writeFontString(String s)`

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

Field Detail

### tableNamesSimple

    static final String[] tableNamesSimple

### tableNamesCmap

    static final String[] tableNamesCmap

### tableNamesExtra

    static final String[] tableNamesExtra

### entrySelectors

    static final int[] entrySelectors

### TABLE_CHECKSUM

    static final int TABLE_CHECKSUM

See Also:
  Constant Field Values

### TABLE_OFFSET

    static final int TABLE_OFFSET

See Also:
  Constant Field Values

### TABLE_LENGTH

    static final int TABLE_LENGTH

See Also:
  Constant Field Values

### HEAD_LOCA_FORMAT_OFFSET

    static final int HEAD_LOCA_FORMAT_OFFSET

See Also:
  Constant Field Values

### ARG_1_AND_2_ARE_WORDS

    static final int ARG_1_AND_2_ARE_WORDS

See Also:
  Constant Field Values

### WE_HAVE_A_SCALE

    static final int WE_HAVE_A_SCALE

See Also:
  Constant Field Values

### MORE_COMPONENTS

    static final int MORE_COMPONENTS

See Also:
  Constant Field Values

### WE_HAVE_AN_X_AND_Y_SCALE

    static final int WE_HAVE_AN_X_AND_Y_SCALE

See Also:
  Constant Field Values

### WE_HAVE_A_TWO_BY_TWO

    static final int WE_HAVE_A_TWO_BY_TWO

See Also:
  Constant Field Values

### tableDirectory

    protected HashMap tableDirectory

  Contains the location of the several tables. The key is the name of the table and the value is an `int[3]` where position 0 is the checksum, position 1 is the offset from the start of the file and position 2 is the length of the table.

### rf

    protected RandomAccessFileOrArray rf

  The file in use.

### fileName

    protected String fileName

  The file name.

### includeCmap

    protected boolean includeCmap

### includeExtras

    protected boolean includeExtras

### locaShortTable

    protected boolean locaShortTable

### locaTable

    protected int[] locaTable

### glyphsUsed

    protected HashMap glyphsUsed

### glyphsInList

    protected ArrayList glyphsInList

### tableGlyphOffset

    protected int tableGlyphOffset

### newLocaTable

    protected int[] newLocaTable

### newLocaTableOut

    protected byte[] newLocaTableOut

### newGlyfTable

    protected byte[] newGlyfTable

### glyfTableRealSize

    protected int glyfTableRealSize

### locaTableRealSize

    protected int locaTableRealSize

### outFont

    protected byte[] outFont

### fontPtr

    protected int fontPtr

### directoryOffset

    protected int directoryOffset

Constructor Detail

### TrueTypeFontSubSet

    TrueTypeFontSubSet(String fileName,
                       RandomAccessFileOrArray rf,
                       HashMap glyphsUsed,
                       int directoryOffset,
                       boolean includeCmap,
                       boolean includeExtras)

  Creates a new TrueTypeFontSubSet

  Parameters:
    `directoryOffset` - The offset from the start of the file to the table directory
    `fileName` - the file name of the font
    `glyphsUsed` - the glyphs used
    `includeCmap` - `true` if the table cmap is to be included in the generated font

Method Detail

### process

    byte[] process()
             throws IOException,
                    DocumentException

  Does the actual work of subsetting the font.

  Returns:
    the subset font
  Throws:
    `IOException` - on error
    `DocumentException` - on error

### assembleFont

    protected void assembleFont()
                         throws IOException

  Throws:
    `IOException`

### createTableDirectory

    protected void createTableDirectory()
                                 throws IOException,
                                        DocumentException

  Throws:
    `IOException`
    `DocumentException`

### readLoca

    protected void readLoca()
                     throws IOException,
                            DocumentException

  Throws:
    `IOException`
    `DocumentException`

### createNewGlyphTables

    protected void createNewGlyphTables()
                                 throws IOException

  Throws:
    `IOException`

### locaTobytes

    protected void locaTobytes()

### flatGlyphs

    protected void flatGlyphs()
                       throws IOException,
                              DocumentException

  Throws:
    `IOException`
    `DocumentException`

### checkGlyphComposite

    protected void checkGlyphComposite(int glyph)
                                throws IOException

  Throws:
    `IOException`

### readStandardString

    protected String readStandardString(int length)
                                 throws IOException

  Reads a `String` from the font file as bytes using the Cp1252 encoding.

  Parameters:
    `length` - the length of bytes to read
  Returns:
    the `String` read
  Throws:
    `IOException` - the font file could not be read

### writeFontShort

    protected void writeFontShort(int n)

### writeFontInt

    protected void writeFontInt(int n)

### writeFontString

    protected void writeFontString(String s)

### calculateChecksum

    protected int calculateChecksum(byte[] b)

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