com.lowagie.text.pdf
Class CMapAwareDocumentFont

java.lang.Object
  extended by com.lowagie.text.pdf.BaseFont
      extended by com.lowagie.text.pdf.DocumentFont
          extended by 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.
 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 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