## com.lowagie.text.pdf
Class CMapAwareDocumentFont

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

    public class CMapAwareDocumentFont

extends DocumentFont

Implementation of DocumentFont used while parsing PDF streams.

Since:
  2.1.4

Nested Class Summary

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

Field Summary
`private CMap` `cmap` CMap instance.
`private PdfDictionary` `fontDic` The font dictionary.
`private int` `spaceWidth` the width of a space for this font, in normalized 1000 point units

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
`CMapAwareDocumentFont(PRIndirectReference refFont)` Creates an instance of a CMapAwareFont based on an indirect reference to a font.

Method Summary
`private int` `computeAverageWidth()` For all widths of all glyphs, compute the average width in normalized 1000 point units.
`java.lang.String` `encode(byte[] bytes, int offset, int len)` Encodes bytes to a String.
`int` `getWidth(int char1)` Gets the width of a `char` in normalized 1000 units.
`private void` `processToUni()` Does some processing if the font dictionary indicates that the font is in unicode.

Methods inherited from class com.lowagie.text.pdf.DocumentFont
`charExists, convertToBytes, convertToBytes, getAllNameEntries, getCharBBox, getFamilyFontName, getFontDescriptor, getFullFontName, getFullFontStream, getIndirectReference, getKerning, getPostscriptFontName, getRawCharBBox, getRawWidth, getWidth, hasKernPairs, setKerning, setPostscriptFontName, writeFont`

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

### fontDic

    private PdfDictionary fontDic

  The font dictionary.

### cmap

    private CMap cmap

  CMap instance.

### spaceWidth

    private int spaceWidth

  the width of a space for this font, in normalized 1000 point units

Constructor Detail

### CMapAwareDocumentFont

    public CMapAwareDocumentFont(PRIndirectReference refFont)

  Creates an instance of a CMapAwareFont based on an indirect reference to a font.

  Parameters:
    `refFont` - the indirect reference to a font

Method Detail

### computeAverageWidth

    private int computeAverageWidth()

  For all widths of all glyphs, compute the average width in normalized 1000 point units. This is used to give some meaningful width in cases where we need an average font width (such as if the width of a space isn't specified by a given font)

  Returns:
    the average width of all non-zero width glyphs in the font

### getWidth

    public int getWidth(int char1)

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

  Overrides:
    `getWidth` in class `DocumentFont`
  Parameters:
    `char1` - the unicode `char` to get the width of
  Returns:
    the width in normalized 1000 units
  Since:
    2.1.5 Override to allow special handling for fonts that don't specify width of space character
  See Also:
    `DocumentFont.getWidth(int)`

### processToUni

    private void processToUni()

  Does some processing if the font dictionary indicates that the font is in unicode.

### encode

    public java.lang.String encode(byte[] bytes,
                                   int offset,
                                   int len)

  Encodes bytes to a String.

  Parameters:
    `bytes` - the bytes from a stream
    `offset` - an offset
    `len` - a length
  Returns:
    a String encoded taking into account if the bytes are in unicode or not.

Hosted by Hostbasket