## com.lowagie.text.pdf
Class DocumentFont

    java.lang.Object
      com.lowagie.text.pdf.BaseFont
          com.lowagie.text.pdf.DocumentFont

public class DocumentFont
extends BaseFont

Author:
  psoares

Nested Class Summary

Nested classes inherited from class com.lowagie.text.pdf.BaseFont
`BaseFont.StreamFont`

Field Summary
`(package private) float` `Ascender`
`(package private) float` `CapHeight`
`(package private) String[]` `cjkEncs`
`(package private) String[]` `cjkEncs2`
`(package private) BaseFont` `cjkMirror`
`(package private) String[]` `cjkNames`
`(package private) String[]` `cjkNames2`
`(package private) float` `Descender`
`(package private) PdfDictionary` `font`
`(package private) String` `fontName`
`(package private) float` `ItalicAngle`
`(package private) float` `llx`
`(package private) float` `lly`
`(package private) PRIndirectReference` `refFont`
`(package private) static int[]` `stdEnc`
`(package private) IntHashtable` `uni2byte`
`(package private) float` `urx`
`(package private) float` `ury`

Fields inherited from class com.lowagie.text.pdf.BaseFont

`ASCENT, AWT_ASCENT, AWT_DESCENT, AWT_LEADING, AWT_MAXADVANCE, BBOXLLX, BBOXLLY, BBOXURX, BBOXURY, BuiltinFonts14, CACHED, CAPHEIGHT, charBBoxes, CID_NEWLINE, COURIER, COURIER_BOLD, COURIER_BOLDOBLIQUE, COURIER_OBLIQUE, CP1250, CP1252, CP1257, DESCENT, differences, directTextToByte, embedded, EMBEDDED, encoding, fastWinansi, FONT_TYPE_CJK, FONT_TYPE_DOCUMENT, FONT_TYPE_T1, FONT_TYPE_T3, FONT_TYPE_TT, FONT_TYPE_TTUNI, fontCache, fontSpecific, fontType, forceWidthsOutput, HELVETICA, HELVETICA_BOLD, HELVETICA_BOLDOBLIQUE, HELVETICA_OBLIQUE, IDENTITY_H, IDENTITY_V, ITALICANGLE, MACROMAN, NOT_CACHED, NOT_EMBEDDED, notdef, RESOURCE_PATH, subset, SYMBOL, TIMES_BOLD, TIMES_BOLDITALIC, TIMES_ITALIC, TIMES_ROMAN, unicodeDifferences, widths, WINANSI, ZAPFDINGBATS`

Constructor Summary
`(package private)` `DocumentFont(PRIndirectReference refFont)` Creates a new instance of DocumentFont

Method Summary
`boolean` `charExists(char c)` Checks if a character exists in this font.
`(package private) byte[]` `convertToBytes(String text)` Converts a `String` to a byte array according to the font's encoding.
`void` `doType1TT()`
`(package private) void` `fillEncoding(PdfName encoding)`
`(package private) void` `fillFontDesc()`
`int[]` `getCharBBox(char c)` Gets the smallest box enclosing the character contours.
`String[][]` `getFamilyFontName()` Gets the family name of the font.
`float` `getFontDescriptor(int key, float fontSize)` Gets the font parameter identified by `key`.
`String[][]` `getFullFontName()` Gets the full name of the font.
`(package private) PdfIndirectReference` `getIndirectReference()`
`int` `getKerning(char char1, char char2)` Gets the kerning between two Unicode chars.
`String` `getPostscriptFontName()` Gets the postscript font name.
`protected int[]` `getRawCharBBox(int c, String name)`
`(package private) int` `getRawWidth(int c, String name)` Gets the width from the font according to the Unicode char `c` or the `name`.
`int` `getWidth(String text)` Gets the width of a `String` in normalized 1000 units.
`boolean` `hasKernPairs()` Checks if the font has any kerning pairs.
`boolean` `setKerning(char char1, char char2, int kern)` Sets the kerning between two Unicode chars.
`void` `setPostscriptFontName(String name)` Sets the font name that will appear in the pdf font dictionary.
`(package private) void` `writeFont(PdfWriter writer, PdfIndirectReference ref, Object[] params)` Outputs to the writer the font dictionaries and streams.

Methods inherited from class com.lowagie.text.pdf.BaseFont

`correctArabicAdvance, createEncoding, createFont, createFont, createFont, createSubsetPrefix, enumerateTTCNames, enumerateTTCNames, getAllFontNames, getAscent, getAscentPoint, getBaseName, getCidCode, getCodePagesSupported, getDescent, getDescentPoint, getDifferences, getDocumentFonts, getDocumentFonts, getEncoding, getFontType, getFullFontName, getResourceStream, getResourceStream, getUnicodeDifferences, getUnicodeDifferences, getUnicodeEquivalent, getWidth, getWidthPoint, getWidthPoint, getWidthPointKerned, getWidths, isDirectTextToByte, isEmbedded, isFontSpecific, isForceWidthsOutput, isSubset, normalizeEncoding, setCharAdvance, setDirectTextToByte, setForceWidthsOutput, setSubset`

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

Field Detail

### fontName

    String fontName

### refFont

    PRIndirectReference refFont

### font

    PdfDictionary font

### uni2byte

    IntHashtable uni2byte

### Ascender

    float Ascender

### CapHeight

    float CapHeight

### Descender

    float Descender

### ItalicAngle

    float ItalicAngle

### llx

    float llx

### lly

    float lly

### urx

    float urx

### ury

    float ury

### cjkMirror

    BaseFont cjkMirror

### cjkNames

    String[] cjkNames

### cjkEncs

    String[] cjkEncs

### cjkNames2

    String[] cjkNames2

### cjkEncs2

    String[] cjkEncs2

### stdEnc

    static final int[] stdEnc

Constructor Detail

### DocumentFont

    DocumentFont(PRIndirectReference refFont)

  Creates a new instance of DocumentFont

Method Detail

### doType1TT

    public void doType1TT()

### fillFontDesc

    void fillFontDesc()

### fillEncoding

    void fillEncoding(PdfName encoding)

### getFamilyFontName

    public String[][] getFamilyFontName()

  Gets the family name of the font. If it is a True Type font each array element will have {Platform ID, Platform Encoding ID, Language ID, font name}. The interpretation of this values can be found in the Open Type specification, chapter 2, in the 'name' table.
  For the other fonts the array has a single element with {"", "", "", font name}.

  Specified by:
    `getFamilyFontName` in class `BaseFont`
  Returns:
    the family name of the font

### getFontDescriptor

    public float getFontDescriptor(int key,
                                   float fontSize)

  Gets the font parameter identified by `key`. Valid values for `key` are `ASCENT`, `CAPHEIGHT`, `DESCENT`, `ITALICANGLE`, `BBOXLLX`, `BBOXLLY`, `BBOXURX` and `BBOXURY`.

  Specified by:
    `getFontDescriptor` in class `BaseFont`
  Parameters:
    `key` - the parameter to be extracted
    `fontSize` - the font size in points
  Returns:
    the parameter in points

### getFullFontName

    public String[][] getFullFontName()

  Gets the full name of the font. If it is a True Type font each array element will have {Platform ID, Platform Encoding ID, Language ID, font name}. The interpretation of this values can be found in the Open Type specification, chapter 2, in the 'name' table.
  For the other fonts the array has a single element with {"", "", "", font name}.

  Specified by:
    `getFullFontName` in class `BaseFont`
  Returns:
    the full name of the font

### getKerning

    public int getKerning(char char1,
                          char char2)

  Gets the kerning between two Unicode chars.

  Specified by:
    `getKerning` in class `BaseFont`
  Parameters:
    `char1` - the first char
    `char2` - the second char
  Returns:
    the kerning to be applied

### getPostscriptFontName

    public String getPostscriptFontName()

  Gets the postscript font name.

  Specified by:
    `getPostscriptFontName` in class `BaseFont`
  Returns:
    the postscript font name

### getRawWidth

    int getRawWidth(int c,
                    String name)

  Gets the width from the font according to the Unicode char `c` or the `name`. If the `name` is null it's a symbolic font.

  Specified by:
    `getRawWidth` in class `BaseFont`
  Parameters:
    `c` - the unicode char
    `name` - the glyph name
  Returns:
    the width of the char

### hasKernPairs

    public boolean hasKernPairs()

  Checks if the font has any kerning pairs.

  Specified by:
    `hasKernPairs` in class `BaseFont`
  Returns:
    `true` if the font has any kerning pairs

### writeFont

    void writeFont(PdfWriter writer,
                   PdfIndirectReference ref,
                   Object[] params)
             throws DocumentException,
                    IOException

  Outputs to the writer the font dictionaries and streams.

  Specified by:
    `writeFont` in class `BaseFont`
  Parameters:
    `writer` - the writer for this document
    `ref` - the font indirect reference
    `params` - several parameters that depend on the font type
  Throws:
    `IOException` - on error
    `DocumentException` - error in generating the object

### getWidth

    public int getWidth(String text)

  Description copied from class: `BaseFont`
  Gets the width of a `String` in normalized 1000 units.

  Overrides:
    `getWidth` in class `BaseFont`
  Parameters:
    `text` - the `String` to get the witdth of
  Returns:
    the width in normalized 1000 units

### convertToBytes

    byte[] convertToBytes(String text)

  Description copied from class: `BaseFont`
  Converts a `String` to a byte array according to the font's encoding.

  Overrides:
    `convertToBytes` in class `BaseFont`
  Parameters:
    `text` - the `String` to be converted
  Returns:
    an array of `byte` representing the conversion according to the font's encoding

### getIndirectReference

    PdfIndirectReference getIndirectReference()

### charExists

    public boolean charExists(char c)

  Description copied from class: `BaseFont`
  Checks if a character exists in this font.

  Overrides:
    `charExists` in class `BaseFont`
  Parameters:
    `c` - the character to check
  Returns:
    `true` if the character has a glyph, `false` otherwise

### setPostscriptFontName

    public void setPostscriptFontName(String name)

  Sets the font name that will appear in the pdf font dictionary. It does nothing in this case as the font is already in the document.

  Specified by:
    `setPostscriptFontName` in class `BaseFont`
  Parameters:
    `name` - the new font name

### setKerning

    public boolean setKerning(char char1,
                              char char2,
                              int kern)

  Description copied from class: `BaseFont`
  Sets the kerning between two Unicode chars.

  Specified by:
    `setKerning` in class `BaseFont`
  Parameters:
    `char1` - the first char
    `char2` - the second char
    `kern` - the kerning to apply in normalized 1000 units
  Returns:
    `true` if the kerning was applied, `false` otherwise

### getCharBBox

    public int[] getCharBBox(char c)

  Description copied from class: `BaseFont`
  Gets the smallest box enclosing the character contours. It will return `null` if the font has not the information or the character has no contours, as in the case of the space, for example. Characters with no contours may also return [0,0,0,0].

  Overrides:
    `getCharBBox` in class `BaseFont`
  Parameters:
    `c` - the character to get the contour bounding box from
  Returns:
    an array of four floats with the bounding box in the format [llx,lly,urx,ury] or `null`

### getRawCharBBox

    protected int[] getRawCharBBox(int c,
                                   String name)

  Specified by:
    `getRawCharBBox` in class `BaseFont`