Package 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
Abstract base class for custom fonts loaded from files, for example.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected List<SimpleSingleByteEncoding> protected List<CMapSegment> the character map, mapping Unicode ranges to glyph indices.protected Map<Integer, SVGGlyphData> protected Map<Character, SingleByteFont.UnencodedCharacter> Fields inherited from class org.apache.fop.fonts.Typeface
eventListener, NOT_FOUND -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddUnencodedCharacter(NamedCharacter ch, int width, Rectangle bbox) Adds an unencoded character (one that is not supported by the primary encoding).getAdditionalEncoding(int index) Returns an additional encoding.intReturns the number of additional encodings this single-byte font maintains.intReturns the ascender value of the font.intgetAscender(int size) Returns the ascent of the font described by this FontMetrics object.intReturns the capital height of the font.intgetCapHeight(int size) Returns the size of a capital letter measured from the font's baseline.getCMap()Returns the character map for this font.intReturns the descender value of the font.intgetDescender(int size) Returns the descent of the font described by this FontMetrics object.Returns the embedding mode for this font.Returns an URI representing an embeddable font file.Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").Returns the lookup name to an embeddable font file available as a resource.Returns the font family names.intReturns the index of the first character defined in this font.intgetFlags()Returns the flags for the font.int[]Returns the font's bounding box.Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").Returns font's subfamily name.Returns the type of the font.Returns the URI of the font file from which these metrics were loaded.Returns the font's full name (Example: "Helvetica Bold Oblique").Returns anInputStreamrepresenting an embeddable font file.intReturns the italic angle for the font.Returns the kerning map for the font.intReturns the index of the last character defined in this font.intReturns the width to be used when no width is available.booleanintgetStemV()Returns the vertical stem width for the font.intgetStrikeoutPosition(int size) Returns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).intgetStrikeoutThickness(int size) Returns the thickness of the strikeout line.Returns the font family name stripped of whitespace.intgetUnderlinePosition(int size) Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).intgetUnderlineThickness(int size) Returns the thickness of the underline.abstract chargetUnicodeFromGID(int glyphIndex) Returns the character from it's original glyph index in the fontReturns a Map of used Glyphs.intReturns the font weight (100, 200...800, 900).intgetXHeight(int size) Determines the typical font height of this FontMetrics objectbooleanIndicates whether the encoding has additional encodings besides the primary encoding.final booleanIndicates if the font has kerning information.booleanhasSVG()booleanUsed to determine if advanced typographic features are enabled.booleanUsed to determine if kerning is enabled.booleanIndicates whether the font is a symbolic font.protected charmapUnencodedChar(char ch) Adds a character to additional encodingsvoidputKerningEntry(Integer key, Map<Integer, Integer> value) Adds an entry to the kerning table.voidReplaces the existing kerning map with a new one.voidsetAdvancedEnabled(boolean enabled) Enables/disabled advanced typographic features.voidsetAscender(int ascender) Sets the ascent value.voidsetCapHeight(int capHeight) Sets the capital height value.voidsetCMap(CMapSegment[] cmap) Sets the character map for this font.voidsetDescender(int descender) Sets the descent value.voidsetEmbeddingMode(EmbeddingMode embeddingMode) Sets the embedding mode.voidsetEmbedResourceName(String name) Sets the resource name of the embeddable font file.voidsetEmbedURI(URI path) Sets the URI to the embeddable font.voidsetFamilyNames(Set<String> names) Sets the font's family names (Example: "Helvetica").voidsetFirstChar(int index) Sets the index of the first character in the character table.voidsetFlags(int flags) Sets the font's flagsvoidsetFontBBox(int[] bbox) Sets the font's bounding boxvoidsetFontName(String name) Sets the "PostScript" font name (Example: "Helvetica-BoldOblique").voidsetFontSubFamilyName(String subFamilyName) Sets the font's subfamily name.voidsetFontType(FontType fontType) Sets the font type.voidsetFontURI(URI uri) Sets the URI from which this font is or will be loaded.voidsetFullName(String name) Sets the font's full name (usually the one that the operating system displays).voidsetItalicAngle(int italicAngle) Sets the font's italic angle.voidsetKerningEnabled(boolean enabled) Enables/disabled kerning.voidsetLastChar(int index) Sets the index of the last character in the character table.voidsetMissingWidth(int width) Sets the font's default widthvoidsetSimulateStyle(boolean enabled) voidsetStemV(int stemV) Sets the font's StemV value.voidsetStrikeoutPosition(int strikeoutPosition) voidsetStrikeoutThickness(int strikeoutThickness) voidsetSVG(Map<Integer, SVGGlyphData> svgs) voidsetUnderlinePosition(int underlinePosition) voidsetUnderlineThickness(int underlineThickness) voidsetWeight(int weight) Sets the font weight.voidsetXHeight(int xHeight) Returns the XHeight value of the font.Methods inherited from class org.apache.fop.fonts.Typeface
getEncodingName, getMaxAscent, hadMappingOperations, hasChar, hasFeature, isCID, isMultiByte, mapChar, notifyMapOperation, setEventListener, toString, warnMissingGlyphMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.fop.fonts.FontDescriptor
isEmbeddable, isSubsetEmbeddedMethods inherited from interface org.apache.fop.fonts.FontMetrics
getBoundingBox, getMaxAscent, getWidth, getWidths, hasFeature, isMultiByte
-
Field Details
-
cmap
the character map, mapping Unicode ranges to glyph indices. -
svgs
-
additionalEncodings
-
unencodedCharacters
-
-
Constructor Details
-
CustomFont
- Parameters:
resourceResolver- the URI resource resolver for controlling file access
-
-
Method Details
-
getFontURI
Returns the URI of the font file from which these metrics were loaded.- Specified by:
getFontURIin interfaceFontMetrics- Returns:
- the font file's URI
-
getFontName
Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").- Specified by:
getFontNamein interfaceFontMetrics- Returns:
- the font name
-
getEmbedFontName
Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").- Specified by:
getEmbedFontNamein interfaceFontMetrics- Returns:
- the name for font embedding
-
getFullName
Returns the font's full name (Example: "Helvetica Bold Oblique").- Specified by:
getFullNamein interfaceFontMetrics- Returns:
- the font's full name
-
getFamilyNames
Returns the font family names.- Specified by:
getFamilyNamesin interfaceFontMetrics- Returns:
- the font family names (a Set of Strings)
-
getStrippedFontName
Returns the font family name stripped of whitespace.- Returns:
- the stripped font family
- See Also:
-
getFontSubName
Returns font's subfamily name.- Returns:
- the font's subfamily name
-
getEmbedFileURI
Returns an URI representing an embeddable font file.- Returns:
- URI to an embeddable font file or null if not available.
-
getEmbeddingMode
Returns the embedding mode for this font.- Returns:
- embedding mode
-
getInputStream
Returns anInputStreamrepresenting an embeddable font file.- Returns:
InputStreamfor an embeddable font file- Throws:
IOException- if embedFileName is not null but Source is not found
-
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:
getAscenderin interfaceFontDescriptor- Returns:
- the ascender
-
getDescender
public int getDescender()Returns the descender value of the font. (Descent in pdf spec)- Specified by:
getDescenderin interfaceFontDescriptor- Returns:
- the descender value
-
getCapHeight
public int getCapHeight()Returns the capital height of the font.- Specified by:
getCapHeightin interfaceFontDescriptor- 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:
getAscenderin interfaceFontMetrics- 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:
getDescenderin interfaceFontMetrics- 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:
getCapHeightin interfaceFontMetrics- 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:
getXHeightin interfaceFontMetrics- Parameters:
size- font size- Returns:
- font height in millipoints
-
getFontBBox
public int[] getFontBBox()Returns the font's bounding box.- Specified by:
getFontBBoxin interfaceFontDescriptor- Returns:
- the bounding box
-
getFlags
public int getFlags()Returns the flags for the font. (See pdf spec)- Specified by:
getFlagsin interfaceFontDescriptor- Returns:
- the flags
-
isSymbolicFont
public boolean isSymbolicFont()Indicates whether the font is a symbolic font.- Specified by:
isSymbolicFontin interfaceFontDescriptor- 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:
getStemVin interfaceFontDescriptor- Returns:
- the vertical stem width
-
getItalicAngle
public int getItalicAngle()Returns the italic angle for the font.- Specified by:
getItalicAnglein interfaceFontDescriptor- Returns:
- the italic angle
-
getMissingWidth
public int getMissingWidth()Returns the width to be used when no width is available.- Returns:
- a character width
-
getFontType
Returns the type of the font.- Specified by:
getFontTypein interfaceFontMetrics- 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:
hasKerningInfoin interfaceFontMetrics- Returns:
- true if kerning is available.
-
getKerningInfo
Returns the kerning map for the font.- Specified by:
getKerningInfoin interfaceFontMetrics- 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
Sets the URI from which this font is or will be loaded.- Specified by:
setFontURIin interfaceMutableFont- Parameters:
uri- URI from which font is or will be loaded
-
setFontName
Sets the "PostScript" font name (Example: "Helvetica-BoldOblique").- Specified by:
setFontNamein interfaceMutableFont- Parameters:
name- font name
-
setFullName
Sets the font's full name (usually the one that the operating system displays). Example: "Helvetica Bold Oblique".- Specified by:
setFullNamein interfaceMutableFont- Parameters:
name- font' full name
-
setFamilyNames
Sets the font's family names (Example: "Helvetica").- Specified by:
setFamilyNamesin interfaceMutableFont- Parameters:
names- the font's family names (a Set of Strings)
-
setFontSubFamilyName
Sets the font's subfamily name.- Parameters:
subFamilyName- the subfamily name of the font
-
setEmbedURI
Sets the URI to the embeddable font.- Specified by:
setEmbedURIin interfaceMutableFont- Parameters:
path- URI to the font
-
setEmbedResourceName
Sets the resource name of the embeddable font file.- Specified by:
setEmbedResourceNamein interfaceMutableFont- Parameters:
name- resource name
-
setEmbeddingMode
Sets the embedding mode.- Specified by:
setEmbeddingModein interfaceMutableFont- Parameters:
embeddingMode- the embedding mode
-
setCapHeight
public void setCapHeight(int capHeight) Sets the capital height value.- Specified by:
setCapHeightin interfaceMutableFont- 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:
setAscenderin interfaceMutableFont- Parameters:
ascender- ascent height
-
setDescender
public void setDescender(int descender) Sets the descent value.- Specified by:
setDescenderin interfaceMutableFont- Parameters:
descender- descent value
-
setFontBBox
public void setFontBBox(int[] bbox) Sets the font's bounding box- Specified by:
setFontBBoxin interfaceMutableFont- Parameters:
bbox- bounding box
-
setFlags
public void setFlags(int flags) Sets the font's flags- Specified by:
setFlagsin interfaceMutableFont- 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:
setStemVin interfaceMutableFont- Parameters:
stemV- StemV
-
setItalicAngle
public void setItalicAngle(int italicAngle) Sets the font's italic angle.- Specified by:
setItalicAnglein interfaceMutableFont- Parameters:
italicAngle- italic angle
-
setMissingWidth
public void setMissingWidth(int width) Sets the font's default width- Specified by:
setMissingWidthin interfaceMutableFont- Parameters:
width- default width
-
setFontType
Sets the font type.- Specified by:
setFontTypein interfaceMutableFont- Parameters:
fontType- font type
-
setFirstChar
public void setFirstChar(int index) Sets the index of the first character in the character table.- Specified by:
setFirstCharin interfaceMutableFont- 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:
setLastCharin interfaceMutableFont- Parameters:
index- index of the last character
-
setKerningEnabled
public void setKerningEnabled(boolean enabled) Enables/disabled kerning.- Specified by:
setKerningEnabledin interfaceMutableFont- Parameters:
enabled- True if kerning should be enabled if available
-
setAdvancedEnabled
public void setAdvancedEnabled(boolean enabled) Enables/disabled advanced typographic features.- Specified by:
setAdvancedEnabledin interfaceMutableFont- Parameters:
enabled- true if advanced typographic features should be enabled if available
-
setSimulateStyle
public void setSimulateStyle(boolean enabled) -
getSimulateStyle
public boolean getSimulateStyle() -
putKerningEntry
Adds an entry to the kerning table.- Specified by:
putKerningEntryin interfaceMutableFont- Parameters:
key- Kerning keyvalue- Kerning value
-
replaceKerningMap
Replaces the existing kerning map with a new one.- Parameters:
kerningMap- the kerning map (the integers are character codes)
-
setCMap
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
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:FontMetricsReturns the distance from the baseline to the center of the underline (negative value indicates below baseline).- Specified by:
getUnderlinePositionin interfaceFontMetrics- 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:FontMetricsReturns the thickness of the underline.- Specified by:
getUnderlineThicknessin interfaceFontMetrics- 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:FontMetricsReturns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).- Specified by:
getStrikeoutPositionin interfaceFontMetrics- 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:FontMetricsReturns the thickness of the strikeout line.- Specified by:
getStrikeoutThicknessin interfaceFontMetrics- Parameters:
size- font size- Returns:
- the thickness in 1/1000ths of the font size
-
setStrikeoutThickness
public void setStrikeoutThickness(int strikeoutThickness) -
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
-
hasAdditionalEncodings
public boolean hasAdditionalEncodings()Indicates whether the encoding has additional encodings besides the primary encoding.- Returns:
- true if there are additional encodings.
-
getAdditionalEncodingCount
public int getAdditionalEncodingCount()Returns the number of additional encodings this single-byte font maintains.- Returns:
- the number of additional encodings
-
getAdditionalEncoding
Returns an additional encoding.- Parameters:
index- the index of the additional encoding- Returns:
- the additional encoding
- Throws:
IndexOutOfBoundsException- if the index is out of bounds
-
addUnencodedCharacter
Adds an unencoded character (one that is not supported by the primary encoding).- Parameters:
ch- the named characterwidth- the width of the character
-
mapUnencodedChar
protected char mapUnencodedChar(char ch) Adds a character to additional encodings- Parameters:
ch- character to map
-
hasSVG
public boolean hasSVG() -
setSVG
-