## com.lowagie.text.pdf
Class DocumentFont

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

Direct Known Subclasses:
  CMapAwareDocumentFont

    public class DocumentFont

extends BaseFont

Author:
  psoares

Nested Class Summary

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

Field Summary
`private float` `Ascender`
`private float` `CapHeight`
`private static java.lang.String[]` `cjkEncs`
`private static java.lang.String[]` `cjkEncs2`
`private BaseFont` `cjkMirror`
`private static java.lang.String[]` `cjkNames`
`private static java.lang.String[]` `cjkNames2`
`private float` `Descender`
`private IntHashtable` `diffmap`
`private PdfDictionary` `font`
`private java.lang.String` `fontName`
`private boolean` `isType0`
`private float` `ItalicAngle`
`private float` `llx`
`private float` `lly`
`private java.util.HashMap` `metrics`
`private PRIndirectReference` `refFont`
`private static int[]` `stdEnc`
`private IntHashtable` `uni2byte`
`private float` `urx`
`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, CHAR_RANGE_ARABIC, CHAR_RANGE_CYRILLIC, CHAR_RANGE_HEBREW, CHAR_RANGE_LATIN, charBBoxes, CID_NEWLINE, compressionLevel, 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, specialMap, STRIKETHROUGH_POSITION, STRIKETHROUGH_THICKNESS, SUBSCRIPT_OFFSET, SUBSCRIPT_SIZE, subset, subsetRanges, SUPERSCRIPT_OFFSET, SUPERSCRIPT_SIZE, SYMBOL, TIMES_BOLD, TIMES_BOLDITALIC, TIMES_ITALIC, TIMES_ROMAN, UNDERLINE_POSITION, UNDERLINE_THICKNESS, unicodeDifferences, widths, WINANSI, ZAPFDINGBATS`

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

Method Summary
`boolean` `charExists(int c)` Checks if a character exists in this font.
`(package private) byte[]` `convertToBytes(int char1)` Converts a `char` to a byte array according to the font's encoding.
`(package private) byte[]` `convertToBytes(java.lang.String text)` Converts a `String` to a byte array according to the font's encoding.
`private java.lang.String` `decodeString(PdfString ps)`
`private void` `doType1TT()`
`private void` `fillEncoding(PdfName encoding)`
`private void` `fillFontDesc(PdfDictionary fontDesc)`
`private void` `fillMetrics(byte[] touni, IntHashtable widths, int dw)`
`java.lang.String[][]` `getAllNameEntries()` Gets all the entries of the names-table.
`int[]` `getCharBBox(int c)` Gets the smallest box enclosing the character contours.
`java.lang.String[][]` `getFamilyFontName()` Gets the family name of the font.
`float` `getFontDescriptor(int key, float fontSize)` Gets the font parameter identified by `key`.
`java.lang.String[][]` `getFullFontName()` Gets the full name of the font.
`PdfStream` `getFullFontStream()` Always returns null.
`(package private) PdfIndirectReference` `getIndirectReference()`
`int` `getKerning(int char1, int char2)` Gets the kerning between two Unicode chars.
`java.lang.String` `getPostscriptFontName()` Gets the postscript font name.
`protected int[]` `getRawCharBBox(int c, java.lang.String name)`
`(package private) int` `getRawWidth(int c, java.lang.String name)` Gets the width from the font according to the Unicode char `c` or the `name`.
`(package private) IntHashtable` `getUni2Byte()` Exposes the unicode - > CID map that is constructed from the font's encoding
`int` `getWidth(int char1)` Gets the width of a `char` in normalized 1000 units.
`int` `getWidth(java.lang.String text)` Gets the width of a `String` in normalized 1000 units.
`boolean` `hasKernPairs()` Checks if the font has any kerning pairs.
`private void` `processType0(PdfDictionary font)`
`private IntHashtable` `readWidths(PdfArray ws)`
`boolean` `setKerning(int char1, int char2, int kern)` Sets the kerning between two Unicode chars.
`void` `setPostscriptFontName(java.lang.String name)` Sets the font name that will appear in the pdf font dictionary.
`(package private) void` `writeFont(PdfWriter writer, PdfIndirectReference ref, java.lang.Object[] params)` Outputs to the writer the font dictionaries and streams.

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

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

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

Field Detail

### metrics

    private java.util.HashMap metrics

### fontName

    private java.lang.String fontName

### refFont

    private PRIndirectReference refFont

### font

    private PdfDictionary font

### uni2byte

    private IntHashtable uni2byte

### diffmap

    private IntHashtable diffmap

### Ascender

    private float Ascender

### CapHeight

    private float CapHeight

### Descender

    private float Descender

### ItalicAngle

    private float ItalicAngle

### llx

    private float llx

### lly

    private float lly

### urx

    private float urx

### ury

    private float ury

### isType0

    private boolean isType0

### cjkMirror

    private BaseFont cjkMirror

### cjkNames

    private static java.lang.String[] cjkNames

### cjkEncs

    private static java.lang.String[] cjkEncs

### cjkNames2

    private static java.lang.String[] cjkNames2

### cjkEncs2

    private static java.lang.String[] cjkEncs2

### stdEnc

    private static final int[] stdEnc

Constructor Detail

### DocumentFont

    DocumentFont(PRIndirectReference refFont)

  Creates a new instance of DocumentFont

Method Detail

### processType0

    private void processType0(PdfDictionary font)

### readWidths

    private IntHashtable readWidths(PdfArray ws)

### decodeString

    private java.lang.String decodeString(PdfString ps)

### fillMetrics

    private void fillMetrics(byte[] touni,
                             IntHashtable widths,
                             int dw)

### doType1TT

    private void doType1TT()

### fillFontDesc

    private void fillFontDesc(PdfDictionary fontDesc)

### fillEncoding

    private void fillEncoding(PdfName encoding)

### getFamilyFontName

    public java.lang.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 java.lang.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

### getAllNameEntries

    public java.lang.String[][] getAllNameEntries()

  Gets all the entries of the names-table. If it is a True Type font each array element will have {Name ID, 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 {"4", "", "", "", font name}.

  Specified by:
    `getAllNameEntries` in class `BaseFont`
  Returns:
    the full name of the font
  Since:
    2.0.8

### getKerning

    public int getKerning(int char1,
                          int 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 java.lang.String getPostscriptFontName()

  Gets the postscript font name.

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

### getRawWidth

    int getRawWidth(int c,
                    java.lang.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,
                   java.lang.Object[] params)
             throws DocumentException,
                    java.io.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:
    `java.io.IOException` - on error
    `DocumentException` - error in generating the object

### getFullFontStream

    public PdfStream getFullFontStream()

  Always returns null.

  Specified by:
    `getFullFontStream` in class `BaseFont`
  Returns:
    null
  Since:
    2.1.3

### getWidth

    public int getWidth(int char1)

  Gets the width of a `char` in normalized 1000 units.

  Overrides:
    `getWidth` in class `BaseFont`
  Parameters:
    `char1` - the unicode `char` to get the width of
  Returns:
    the width in normalized 1000 units

### getWidth

    public int getWidth(java.lang.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 width of
  Returns:
    the width in normalized 1000 units

### convertToBytes

    byte[] convertToBytes(java.lang.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

### convertToBytes

    byte[] convertToBytes(int char1)

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

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

### getIndirectReference

    PdfIndirectReference getIndirectReference()

### charExists

    public boolean charExists(int 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(java.lang.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(int char1,
                              int 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(int 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,
                                   java.lang.String name)

  Specified by:
    `getRawCharBBox` in class `BaseFont`

### getUni2Byte

    IntHashtable getUni2Byte()

  Exposes the unicode - > CID map that is constructed from the font's encoding

  Returns:
    the unicode to CID map
  Since:
    2.1.7

Hosted by Hostbasket