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 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/interfaces inherited from class com.lowagie.text.pdf.BaseFont
`BaseFont.StreamFont`

Field Summary
`private float` | `Ascender`
`private float` | `CapHeight`
`private static String[]` | `cjkEncs`
`private static String[]` | `cjkEncs2`
`private BaseFont` | `cjkMirror`
`private static String[]` | `cjkNames`
`private static String[]` | `cjkNames2`
`private float` | `Descender`
`private PdfDictionary` | `font`
`private String` | `fontName`
`private boolean` | `isType0`
`private float` | `ItalicAngle`
`private float` | `llx`
`private float` | `lly`
`private 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, 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(char c)` Checks if a character exists in this font.
`(package private) byte[]` | `convertToBytes(char char1)` Converts a `char` to a byte array according to the font's encoding.
`(package private) byte[]` | `convertToBytes(String text)` Converts a `String` to a byte array according to the font's encoding.
`private 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)`
`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(char char1)` Gets the width of a `char` in normalized 1000 units.
`int` | `getWidth(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(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
`addSubsetRange, correctArabicAdvance, createEncoding, createFont, 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, 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

### metrics

    private HashMap metrics

### fontName

    private String fontName

### refFont

    private PRIndirectReference refFont

### font

    private PdfDictionary font

### uni2byte

    private IntHashtable uni2byte

### 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 String[] cjkNames

### cjkEncs

    private static String[] cjkEncs

### cjkNames2

    private static String[] cjkNames2

### cjkEncs2

    private static 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 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 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(char 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(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

### convertToBytes

    byte[] convertToBytes(char 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(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`

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