fop 1.1

## org.apache.fop.fonts
Class CustomFont

    java.lang.Object
      org.apache.fop.fonts.Typeface
          org.apache.fop.fonts.CustomFont

All Implemented Interfaces:
  FontDescriptor, FontMetrics, MutableFont

Direct Known Subclasses:
  CIDFont, SingleByteFont

    public abstract class CustomFont

extends Typeface
implements FontDescriptor, MutableFont

Abstract base class for custom fonts loaded from files, for example.

Field Summary
`protected CMapSegment[]` `cmap` the character map, mapping Unicode ranges to glyph indices.

Fields inherited from class org.apache.fop.fonts.Typeface
`eventListener, NOT_FOUND`

Constructor Summary
`CustomFont()`

Method Summary
`int` `getAscender()` Returns the ascender value of the font.
`int` `getAscender(int size)` Returns the ascent of the font described by this FontMetrics object.
`int` `getCapHeight()` Returns the capital height of the font.
`int` `getCapHeight(int size)` Returns the size of a capital letter measured from the font's baseline.
`CMapSegment[]` `getCMap()` Returns the character map for this font.
`int` `getDescender()` Returns the descender value of the font.
`int` `getDescender(int size)` Returns the descent of the font described by this FontMetrics object.
`EmbeddingMode` `getEmbeddingMode()` Returns the embedding mode for this font.
`java.lang.String` `getEmbedFileName()` Returns an URI representing an embeddable font file.
`javax.xml.transform.Source` `getEmbedFileSource()` Returns a Source representing an embeddable font file.
`java.lang.String` `getEmbedFontName()` Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").
`java.lang.String` `getEmbedResourceName()` Returns the lookup name to an embeddable font file available as a resource.
`java.util.Set<java.lang.String>` `getFamilyNames()` Returns the font family names.
`int` `getFirstChar()` Returns the index of the first character defined in this font.
`int` `getFlags()` Returns the flags for the font.
`int[]` `getFontBBox()` Returns the font's bounding box.
`java.lang.String` `getFontName()` Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").
`java.lang.String` `getFontSubName()` Returns font's subfamily name.
`FontType` `getFontType()` Returns the type of the font.
`java.lang.String` `getFullName()` Returns the font's full name (Example: "Helvetica Bold Oblique").
`int` `getItalicAngle()` Returns the italic angle for the font.
`java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.lang.Integer>>` `getKerningInfo()` Returns the kerning map for the font.
`int` `getLastChar()` Returns the index of the last character defined in this font.
`int` `getMissingWidth()` Returns the width to be used when no width is available.
`int` `getStemV()` Returns the vertical stem width for the font.
`java.lang.String` `getStrippedFontName()` Returns the font family name stripped of whitespace.
`int` `getWeight()` Returns the font weight (100, 200...800, 900).
`int` `getXHeight(int size)` Determines the typical font height of this FontMetrics object
`boolean` `hasKerningInfo()` Indicates if the font has kering information.
`boolean` `isAdvancedEnabled()` Used to determine if advanced typographic features are enabled.
`boolean` `isKerningEnabled()` Used to determine if kerning is enabled.
`boolean` `isSymbolicFont()` Indicates whether the font is a symbolic font.
`void` `putKerningEntry(java.lang.Integer key, java.util.Map<java.lang.Integer,java.lang.Integer> value)` Adds an entry to the kerning table.
`void` `replaceKerningMap(java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.lang.Integer>> kerningMap)` Replaces the existing kerning map with a new one.
`void` `setAdvancedEnabled(boolean enabled)` Enables/disabled advanced typographic features.
`void` `setAscender(int ascender)` Sets the ascent value.
`void` `setCapHeight(int capHeight)` Sets the capital height value.
`void` `setCMap(CMapSegment[] cmap)` Sets the character map for this font.
`void` `setDescender(int descender)` Sets the descent value.
`void` `setEmbeddingMode(EmbeddingMode embeddingMode)` Sets the embedding mode.
`void` `setEmbedFileName(java.lang.String path)` Sets the path to the embeddable font file.
`void` `setEmbedResourceName(java.lang.String name)` Sets the resource name of the embeddable font file.
`void` `setFamilyNames(java.util.Set<java.lang.String> names)` Sets the font's family names (Example: "Helvetica").
`void` `setFirstChar(int index)` Sets the index of the first character in the character table.
`void` `setFlags(int flags)` Sets the font's flags
`void` `setFontBBox(int[] bbox)` Sets the font's bounding box
`void` `setFontName(java.lang.String name)` Sets the "PostScript" font name (Example: "Helvetica-BoldOblique").
`void` `setFontSubFamilyName(java.lang.String subFamilyName)` Sets the font's subfamily name.
`void` `setFontType(FontType fontType)` Sets the font type.
`void` `setFullName(java.lang.String name)` Sets the font's full name (usually the one that the operating system displays).
`void` `setItalicAngle(int italicAngle)` Sets the font's italic angle.
`void` `setKerningEnabled(boolean enabled)` Enables/disabled kerning.
`void` `setLastChar(int index)` Sets the index of the last character in the character table.
`void` `setMissingWidth(int width)` Sets the font's default width
`void` `setResolver(FontResolver resolver)` Sets the font resolver.
`void` `setStemV(int stemV)` Sets the font's StemV value.
`void` `setWeight(int weight)` Sets the font weight.
`void` `setXHeight(int xHeight)` Returns the XHeight value of the font.

Methods inherited from class org.apache.fop.fonts.Typeface
`getEncodingName, getMaxAscent, hadMappingOperations, hasChar, isMultiByte, mapChar, notifyMapOperation, setEventListener, toString, warnMissingGlyph`

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

Methods inherited from interface org.apache.fop.fonts.FontDescriptor
`isEmbeddable, isSubsetEmbedded`

Methods inherited from interface org.apache.fop.fonts.FontMetrics
`getMaxAscent, getWidth, getWidths`

Field Detail

### cmap

    protected CMapSegment[] cmap

  the character map, mapping Unicode ranges to glyph indices.

Constructor Detail

### CustomFont

    public CustomFont()

Method Detail

### getFontName

    public java.lang.String getFontName()

  Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").

  Specified by:
    `getFontName` in interface `FontMetrics`
  Returns:
    the font name

### getEmbedFontName

    public java.lang.String getEmbedFontName()

  Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").

  Specified by:
    `getEmbedFontName` in interface `FontMetrics`
  Returns:
    the name for font embedding

### getFullName

    public java.lang.String getFullName()

  Returns the font's full name (Example: "Helvetica Bold Oblique").

  Specified by:
    `getFullName` in interface `FontMetrics`
  Returns:
    the font's full name

### getFamilyNames

    public java.util.Set<java.lang.String> getFamilyNames()

  Returns the font family names.

  Specified by:
    `getFamilyNames` in interface `FontMetrics`
  Returns:
    the font family names (a Set of Strings)

### getStrippedFontName

    public java.lang.String getStrippedFontName()

  Returns the font family name stripped of whitespace.

  Returns:
    the stripped font family
  See Also:
    `FontUtil.stripWhiteSpace(String)`

### getFontSubName

    public java.lang.String getFontSubName()

  Returns font's subfamily name.

  Returns:
    the font's subfamily name

### getEmbedFileName

    public java.lang.String getEmbedFileName()

  Returns an URI representing an embeddable font file. The URI will often be a filename or an URL.

  Returns:
    URI to an embeddable font file or null if not available.

### getEmbeddingMode

    public EmbeddingMode getEmbeddingMode()

  Returns the embedding mode for this font.

  Returns:
    embedding mode

### getEmbedFileSource

    public javax.xml.transform.Source getEmbedFileSource()
                                                  throws java.io.IOException

  Returns a Source representing an embeddable font file.

  Returns:
    Source for an embeddable font file
  Throws:
    `java.io.IOException` - if embedFileName is not null but Source is not found

### getEmbedResourceName

    public java.lang.String getEmbedResourceName()

  Returns the lookup name to an embeddable font file available as a resource. (todo) Remove this method, this should be done using a resource: URI.

  Returns:
    the lookup name

### getAscender

    public int getAscender()

  Returns the ascender value of the font. (Ascent in pdf spec)

  Specified by:
    `getAscender` in interface `FontDescriptor`
  Returns:
    the ascender

### getDescender

    public int getDescender()

  Returns the descender value of the font. (Descent in pdf spec)

  Specified by:
    `getDescender` in interface `FontDescriptor`
  Returns:
    the descender value

### getCapHeight

    public int getCapHeight()

  Returns the capital height of the font.

  Specified by:
    `getCapHeight` in interface `FontDescriptor`
  Returns:
    the capital height

### getAscender

    public int getAscender(int size)

  Returns the ascent of the font described by this FontMetrics object. It returns the nominal ascent within the em box.

  Specified by:
    `getAscender` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    ascent in milliponts

### getDescender

    public int getDescender(int size)

  Returns the descent of the font described by this FontMetrics object.

  Specified by:
    `getDescender` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    descent in milliponts

### getCapHeight

    public int getCapHeight(int size)

  Returns the size of a capital letter measured from the font's baseline.

  Specified by:
    `getCapHeight` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    height of capital characters

### getXHeight

    public int getXHeight(int size)

  Determines the typical font height of this FontMetrics object

  Specified by:
    `getXHeight` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    font height in millipoints

### getFontBBox

    public int[] getFontBBox()

  Returns the font's bounding box.

  Specified by:
    `getFontBBox` in interface `FontDescriptor`
  Returns:
    the bounding box

### getFlags

    public int getFlags()

  Returns the flags for the font. (See pdf spec)

  Specified by:
    `getFlags` in interface `FontDescriptor`
  Returns:
    the flags

### isSymbolicFont

    public boolean isSymbolicFont()

  Indicates whether the font is a symbolic font.

  Specified by:
    `isSymbolicFont` in interface `FontDescriptor`
  Returns:
    true if the font is a symbolic font (i.e. Symbol or ZapfDingbats)

### getWeight

    public int getWeight()

  Returns the font weight (100, 200...800, 900). This value may be different from the one that was actually used to register the font.

  Returns:
    the font weight (or 0 if the font weight is unknown)

### getStemV

    public int getStemV()

  Returns the vertical stem width for the font.

  Specified by:
    `getStemV` in interface `FontDescriptor`
  Returns:
    the vertical stem width

### getItalicAngle

    public int getItalicAngle()

  Returns the italic angle for the font.

  Specified by:
    `getItalicAngle` in interface `FontDescriptor`
  Returns:
    the italic angle

### getMissingWidth

    public int getMissingWidth()

  Returns the width to be used when no width is available.

  Returns:
    a character width

### getFontType

    public FontType getFontType()

  Returns the type of the font.

  Specified by:
    `getFontType` in interface `FontMetrics`
  Returns:
    the font type

### getFirstChar

    public int getFirstChar()

  Returns the index of the first character defined in this font.

  Returns:
    the index of the first character

### getLastChar

    public int getLastChar()

  Returns the index of the last character defined in this font.

  Returns:
    the index of the last character

### isKerningEnabled

    public boolean isKerningEnabled()

  Used to determine if kerning is enabled.

  Returns:
    True if kerning is enabled.

### hasKerningInfo

    public final boolean hasKerningInfo()

  Indicates if the font has kering information.

  Specified by:
    `hasKerningInfo` in interface `FontMetrics`
  Returns:
    True, if kerning is available.

### getKerningInfo

    public final java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.lang.Integer>> getKerningInfo()

  Returns the kerning map for the font.

  Specified by:
    `getKerningInfo` in interface `FontMetrics`
  Returns:
    the kerning map

### isAdvancedEnabled

    public boolean isAdvancedEnabled()

  Used to determine if advanced typographic features are enabled. By default, this is false, but may be overridden by subclasses.

  Returns:
    true if enabled.

### setFontName

    public void setFontName(java.lang.String name)

  Sets the "PostScript" font name (Example: "Helvetica-BoldOblique").

  Specified by:
    `setFontName` in interface `MutableFont`
  Parameters:
    `name` - font name

### setFullName

    public void setFullName(java.lang.String name)

  Sets the font's full name (usually the one that the operating system displays). Example: "Helvetica Bold Oblique".

  Specified by:
    `setFullName` in interface `MutableFont`
  Parameters:
    `name` - font' full name

### setFamilyNames

    public void setFamilyNames(java.util.Set<java.lang.String> names)

  Sets the font's family names (Example: "Helvetica").

  Specified by:
    `setFamilyNames` in interface `MutableFont`
  Parameters:
    `names` - the font's family names (a Set of Strings)

### setFontSubFamilyName

    public void setFontSubFamilyName(java.lang.String subFamilyName)

  Sets the font's subfamily name.

  Parameters:
    `subFamilyName` - the subfamily name of the font

### setEmbedFileName

    public void setEmbedFileName(java.lang.String path)

  Sets the path to the embeddable font file.

  Specified by:
    `setEmbedFileName` in interface `MutableFont`
  Parameters:
    `path` - URI to the file

### setEmbedResourceName

    public void setEmbedResourceName(java.lang.String name)

  Sets the resource name of the embeddable font file.

  Specified by:
    `setEmbedResourceName` in interface `MutableFont`
  Parameters:
    `name` - resource name

### setEmbeddingMode

    public void setEmbeddingMode(EmbeddingMode embeddingMode)

  Sets the embedding mode.

  Specified by:
    `setEmbeddingMode` in interface `MutableFont`
  Parameters:
    `embeddingMode` - the embedding mode

### setCapHeight

    public void setCapHeight(int capHeight)

  Sets the capital height value.

  Specified by:
    `setCapHeight` in interface `MutableFont`
  Parameters:
    `capHeight` - capital height

### setXHeight

    public void setXHeight(int xHeight)

  Returns the XHeight value of the font.

  Parameters:
    `xHeight` - the XHeight value

### setAscender

    public void setAscender(int ascender)

  Sets the ascent value.

  Specified by:
    `setAscender` in interface `MutableFont`
  Parameters:
    `ascender` - ascent height

### setDescender

    public void setDescender(int descender)

  Sets the descent value.

  Specified by:
    `setDescender` in interface `MutableFont`
  Parameters:
    `descender` - descent value

### setFontBBox

    public void setFontBBox(int[] bbox)

  Sets the font's bounding box

  Specified by:
    `setFontBBox` in interface `MutableFont`
  Parameters:
    `bbox` - bounding box

### setFlags

    public void setFlags(int flags)

  Sets the font's flags

  Specified by:
    `setFlags` in interface `MutableFont`
  Parameters:
    `flags` - flags

### setWeight

    public void setWeight(int weight)

  Sets the font weight. Valid values are 100, 200...800, 900.

  Parameters:
    `weight` - the font weight

### setStemV

    public void setStemV(int stemV)

  Sets the font's StemV value.

  Specified by:
    `setStemV` in interface `MutableFont`
  Parameters:
    `stemV` - StemV

### setItalicAngle

    public void setItalicAngle(int italicAngle)

  Sets the font's italic angle.

  Specified by:
    `setItalicAngle` in interface `MutableFont`
  Parameters:
    `italicAngle` - italic angle

### setMissingWidth

    public void setMissingWidth(int width)

  Sets the font's default width

  Specified by:
    `setMissingWidth` in interface `MutableFont`
  Parameters:
    `width` - default width

### setFontType

    public void setFontType(FontType fontType)

  Sets the font type.

  Specified by:
    `setFontType` in interface `MutableFont`
  Parameters:
    `fontType` - font type

### setFirstChar

    public void setFirstChar(int index)

  Sets the index of the first character in the character table.

  Specified by:
    `setFirstChar` in interface `MutableFont`
  Parameters:
    `index` - index of first character

### setLastChar

    public void setLastChar(int index)

  Sets the index of the last character in the character table.

  Specified by:
    `setLastChar` in interface `MutableFont`
  Parameters:
    `index` - index of the last character

### setKerningEnabled

    public void setKerningEnabled(boolean enabled)

  Enables/disabled kerning.

  Specified by:
    `setKerningEnabled` in interface `MutableFont`
  Parameters:
    `enabled` - True if kerning should be enabled if available

### setAdvancedEnabled

    public void setAdvancedEnabled(boolean enabled)

  Enables/disabled advanced typographic features.

  Specified by:
    `setAdvancedEnabled` in interface `MutableFont`
  Parameters:
    `enabled` - true if advanced typographic features should be enabled if available

### setResolver

    public void setResolver(FontResolver resolver)

  Sets the font resolver. Needed for URI resolution.

  Parameters:
    `resolver` - the font resolver

### putKerningEntry

    public void putKerningEntry(java.lang.Integer key,
                                java.util.Map<java.lang.Integer,java.lang.Integer> value)

  Adds an entry to the kerning table.

  Specified by:
    `putKerningEntry` in interface `MutableFont`
  Parameters:
    `key` - Kerning key
    `value` - Kerning value

### replaceKerningMap

    public void replaceKerningMap(java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.lang.Integer>> kerningMap)

  Replaces the existing kerning map with a new one.

  Parameters:
    `kerningMap` - the kerning map (Map<Integer, Map<Integer, Integer>, the integers are character codes)

### setCMap

    public void setCMap(CMapSegment[] cmap)

  Sets the character map for this font. It maps all available Unicode characters to their glyph indices inside the font.

  Parameters:
    `cmap` - the character map

### getCMap

    public CMapSegment[] getCMap()

  Returns the character map for this font. It maps all available Unicode characters to their glyph indices inside the font.

  Returns:
    the character map

fop 1.1

Copyright 1999-2012 The Apache Software Foundation. All Rights Reserved.