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 Type3Font

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

    public class Type3Font

extends BaseFont

A class to support Type3 fonts.

Nested Class Summary

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

Field Summary
`private HashMap` | `char2glyph`
`private boolean` | `colorized`
`private float` | `llx`
`private float` | `lly`
`private PageResources` | `pageResources`
`private float` | `urx`
`private float` | `ury`
`private boolean[]` | `usedSlot`
`private IntHashtable` | `widths3`
`private PdfWriter` | `writer`

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
`Type3Font(PdfWriter writer, boolean colorized)` Creates a Type3 font.
`Type3Font(PdfWriter writer, char[] chars, boolean colorized)` Creates a Type3 font.

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.
`PdfContentByte` | `defineGlyph(char c, float wx, float llx, float lly, float urx, float ury)` Defines a glyph.
`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.
`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.
`boolean` | `setCharAdvance(char c, int advance)` Sets the character advance.
`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, setDirectTextToByte, setForceWidthsOutput, setSubset`

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

Field Detail

### usedSlot

    private boolean[] usedSlot

### widths3

    private IntHashtable widths3

### char2glyph

    private HashMap char2glyph

### writer

    private PdfWriter writer

### llx

    private float llx

### lly

    private float lly

### urx

    private float urx

### ury

    private float ury

### pageResources

    private PageResources pageResources

### colorized

    private boolean colorized

Constructor Detail

### Type3Font

    public Type3Font(PdfWriter writer,
                     char[] chars,
                     boolean colorized)

  Creates a Type3 font.

  Parameters:
    `writer` - the writer
    `chars` - an array of chars corresponding to the glyphs used (not used, prisent for compability only)
    `colorized` - if `true` the font may specify color, if `false` no color commands are allowed and only images as masks can be used

### Type3Font

    public Type3Font(PdfWriter writer,
                     boolean colorized)

  Creates a Type3 font. This implementation assumes that the /FontMatrix is [0.001 0 0 0.001 0 0] or a 1000-unit glyph coordinate system.

  An example:

       Document document = new Document(PageSize.A4);
       PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("type3.pdf"));
       document.open();
       Type3Font t3 = new Type3Font(writer, false);
       PdfContentByte g = t3.defineGlyph('a', 1000, 0, 0, 750, 750);
       g.rectangle(0, 0, 750, 750);
       g.fill();
       g = t3.defineGlyph('b', 1000, 0, 0, 750, 750);
       g.moveTo(0, 0);
       g.lineTo(375, 750);
       g.lineTo(750, 0);
       g.fill();
       Font f = new Font(t3, 12);
       document.add(new Paragraph("ababab", f));
       document.close();

  Parameters:
    `writer` - the writer
    `colorized` - if `true` the font may specify color, if `false` no color commands are allowed and only images as masks can be used

Method Detail

### defineGlyph

    public PdfContentByte defineGlyph(char c,
                                      float wx,
                                      float llx,
                                      float lly,
                                      float urx,
                                      float ury)

  Defines a glyph. If the character was already defined it will return the same content

  Parameters:
    `c` - the character to match this glyph.
    `wx` - the advance this character will have
    `llx` - the X lower left corner of the glyph bounding box. If the `colorize` option is `true` the value is ignored
    `lly` - the Y lower left corner of the glyph bounding box. If the `colorize` option is `true` the value is ignored
    `urx` - the X upper right corner of the glyph bounding box. If the `colorize` option is `true` the value is ignored
    `ury` - the Y upper right corner of the glyph bounding box. If the `colorize` option is `true` the value is ignored
  Returns:
    a content where the glyph can be defined

### getFamilyFontName

    public String[][] getFamilyFontName()

  Description copied from class: `BaseFont`
  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)

  Description copied from class: `BaseFont`
  Gets the font parameter identified by `key`. Valid values for `key` are `ASCENT`, `AWT_ASCENT`, `CAPHEIGHT`, `DESCENT`, `AWT_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()

  Description copied from class: `BaseFont`
  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)

  Description copied from class: `BaseFont`
  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 in normalized 1000 units

### getPostscriptFontName

    public String getPostscriptFontName()

  Description copied from class: `BaseFont`
  Gets the postscript font name.

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

### getRawCharBBox

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

  Specified by:
    `getRawCharBBox` in class `BaseFont`

### getRawWidth

    int getRawWidth(int c,
                    String name)

  Description copied from class: `BaseFont`
  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()

  Description copied from class: `BaseFont`
  Checks if the font has any kerning pairs.

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

### 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

### setPostscriptFontName

    public void setPostscriptFontName(String name)

  Description copied from class: `BaseFont`
  Sets the font name that will appear in the pdf font dictionary. Use with care as it can easily make a font unreadable if not embedded.

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

### writeFont

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

  Description copied from class: `BaseFont`
  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:
    `DocumentException` - error in generating the object
    `IOException` - on error

### 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

### getWidth

    public int getWidth(char char1)

  Description copied from class: `BaseFont`
  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

### 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`

### 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

### setCharAdvance

    public boolean setCharAdvance(char c,
                                  int advance)

  Description copied from class: `BaseFont`
  Sets the character advance.

  Overrides:
    `setCharAdvance` in class `BaseFont`
  Parameters:
    `c` - the character
    `advance` - the character advance normalized to 1000 units
  Returns:
    `true` if the advance was set, `false` otherwise

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