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

## 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 java.util.List<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(InternalResourceResolver resourceResolver)`

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.net.URI` | `getEmbedFileURI()` Returns an URI 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.net.URI` | `getFontURI()` Returns the URI of the font file from which these metrics were loaded.
`java.lang.String` | `getFullName()` Returns the font's full name (Example: "Helvetica Bold Oblique").
`java.io.InputStream` | `getInputStream()` Returns an `InputStream` representing an embeddable font file.
`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.
`int` | `getStrikeoutPosition(int size)` Returns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).
`int` | `getStrikeoutThickness(int size)` Returns the thickness of the strikeout line.
`java.lang.String` | `getStrippedFontName()` Returns the font family name stripped of whitespace.
`int` | `getUnderlinePosition(int size)` Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).
`int` | `getUnderlineThickness(int size)` Returns the thickness of the underline.
`abstract char` | `getUnicodeFromGID(int glyphIndex)` Returns the character from it's original glyph index in the font
`abstract java.util.Map<java.lang.Integer,java.lang.Integer>` | `getUsedGlyphs()` Returns a Map of used Glyphs.
`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 kerning 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` | `setEmbedResourceName(java.lang.String name)` Sets the resource name of the embeddable font file.
`void` | `setEmbedURI(java.net.URI path)` Sets the URI to the embeddable font.
`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` | `setFontURI(java.net.URI uri)` Sets the URI from which this font is or will be loaded.
`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` | `setStemV(int stemV)` Sets the font's StemV value.
`void` | `setStrikeoutPosition(int strikeoutPosition)`
`void` | `setStrikeoutThickness(int strikeoutThickness)`
`void` | `setUnderlinePosition(int underlinePosition)`
`void` | `setUnderlineThickness(int underlineThickness)`
`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, hasFeature, 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
`getBoundingBox, getMaxAscent, getWidth, getWidths, hasFeature, isMultiByte`

Field Detail

### cmap

    protected java.util.List<CMapSegment> cmap

  the character map, mapping Unicode ranges to glyph indices.

Constructor Detail

### CustomFont

    public CustomFont(InternalResourceResolver resourceResolver)

Parameters:
  `resourceResolver` - the URI resource resolver for controlling file access

Method Detail

### getFontURI

    public java.net.URI getFontURI()

  Returns the URI of the font file from which these metrics were loaded.

  Specified by:
    `getFontURI` in interface `FontMetrics`
  Returns:
    the font file's URI

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

### getEmbedFileURI

    public java.net.URI getEmbedFileURI()

  Returns an URI representing an embeddable font file.

  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

### getInputStream

    public java.io.InputStream getInputStream()
                                       throws java.io.IOException

  Returns an `InputStream` representing an embeddable font file.

  Returns:
    `InputStream` 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 kerning 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.

### setFontURI

    public void setFontURI(java.net.URI uri)

  Sets the URI from which this font is or will be loaded.

  Specified by:
    `setFontURI` in interface `MutableFont`
  Parameters:
    `uri` - URI from which font is or will be loaded

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

### setEmbedURI

    public void setEmbedURI(java.net.URI path)

  Sets the URI to the embeddable font.

  Specified by:
    `setEmbedURI` in interface `MutableFont`
  Parameters:
    `path` - URI to the font

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

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

### getUnderlinePosition

    public int getUnderlinePosition(int size)

  Description copied from interface: `FontMetrics`
  Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).

  Specified by:
    `getUnderlinePosition` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the position in 1/1000ths of the font size

### setUnderlinePosition

    public void setUnderlinePosition(int underlinePosition)

### getUnderlineThickness

    public int getUnderlineThickness(int size)

  Description copied from interface: `FontMetrics`
  Returns the thickness of the underline.

  Specified by:
    `getUnderlineThickness` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the thickness in 1/1000ths of the font size

### setUnderlineThickness

    public void setUnderlineThickness(int underlineThickness)

### getStrikeoutPosition

    public int getStrikeoutPosition(int size)

  Description copied from interface: `FontMetrics`
  Returns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).

  Specified by:
    `getStrikeoutPosition` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the position in 1/1000ths of the font size

### setStrikeoutPosition

    public void setStrikeoutPosition(int strikeoutPosition)

### getStrikeoutThickness

    public int getStrikeoutThickness(int size)

  Description copied from interface: `FontMetrics`
  Returns the thickness of the strikeout line.

  Specified by:
    `getStrikeoutThickness` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the thickness in 1/1000ths of the font size

### setStrikeoutThickness

    public void setStrikeoutThickness(int strikeoutThickness)

### getUsedGlyphs

    public abstract java.util.Map<java.lang.Integer,java.lang.Integer> getUsedGlyphs()

  Returns a Map of used Glyphs.

  Returns:
    Map Map of used Glyphs

### getUnicodeFromGID

    public abstract char getUnicodeFromGID(int glyphIndex)

  Returns the character from it's original glyph index in the font

  Parameters:
    `glyphIndex` - The original index of the character
  Returns:
    The character

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

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