Class OpenTypeFont
- java.lang.Object
-
- com.adobe.fontengine.font.FontData
-
- com.adobe.fontengine.font.opentype.OpenTypeFont
-
public final class OpenTypeFont extends FontData
Gives access to an OpenType font
-
-
Field Summary
Fields Modifier and Type Field Description Base
base
The 'BASE' table if present, null otherwiseCff
cff
The 'CFF' table, if present, null otherwiseCmap
cmap
The 'cmap' table, if present, null otherwiseCvt
cvt
The 'cvt' table, if present, null otherwiseFond
fond
The Apple 'fond' table if present, null otherwiseFpgm
fpgm
The 'fpgm' table, if present, null otherwiseGasp
gasp
The 'gasp' table, if present, null otherwiseGdef
gdef
The 'GDEF' table if present, null otherwiseGlyf
glyf
The 'glyf' table, if present, null otherwiseGpos
gpos
The 'GPOS' table, if present, null otherwiseGsub
gsub
The 'GSUB' table, if present, null otherwiseHead
head
The 'head' table, if present, null otherwiseHhea
hhea
The 'hhea' table, if present, null otherwiseHmtx
hmtx
The 'hmtx' table, if present, null otherwiseKern
kern
The 'kern' table, if present, null otherwiseLtsh
ltsh
The 'LTSH' table if present, null otherwiseMaxp
maxp
The 'maxp' table, if present, null otherwiseName
name
The 'name' table, if present, null otherwiseOs2
os2
The 'OS/2' table, if present, null otherwisePost
post
The 'post' table, if present, null otherwisePrep
prep
The 'prep' table, if present, null otherwiseVhea
vhea
The 'vhea' table, if present, null otherwiseVmtx
vmtx
The 'vmtx' table, if present, null otherwiseVorg
vorg
The 'VORG' table if present, null otherwise
-
Constructor Summary
Constructors Constructor Description OpenTypeFont(Map tables, byte[] digest, String base14CSSName, String base14PSName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
computeRomanBaselineH()
double
computeRomanBaselineV()
Subset
createSubset()
Create a subset for this font.CacheSupportInfo
getCacheSupportInfo()
Return the CacheSupportInfo that this font matchesCFFFont
getCFFFont()
int
getCharForGlyph(int gid)
Find a character mapped to some glyph.int
getCIDCount()
double
getCoolTypeCapHeight()
Returns the CoolTypeCapHeight of this font.Rect
getCoolTypeGlyphBBox(int glyphID)
int
getCoolTypeGlyphForChar(int usv)
Return the glyph used by CoolType for a character.Rect
getCoolTypeIcfBox()
Compute the IcfBox.Rect
getCoolTypeIdeoEmBox()
Compute the IdeoEmBox.LineMetrics
getCoolTypeLineMetrics()
Emulates the CoolType API CTFontDict:GetHorizontalMetrics CoolType API.boolean
getCoolTypeProportionalRomanFromFontProperties()
Rect
getCoolTypeRawFontBBox()
CoolTypeScript
getCoolTypeScript()
UnderlineMetrics
getCoolTypeUnderlineMetrics()
double
getCoolTypeUnitsPerEm()
Set
getCSSFamilyNames()
Return the set of CSS font-family names that this font matches.int
getCSSWeight()
Return the CSS weight of this font.Permission
getEmbeddingPermission(boolean wasEmbedded)
Rect
getFontBBox()
FXGFontDescription[]
getFXGFontDescription(Platform platform, ULocale locale)
Return the FXG descriptions for this font.Rect
getGlyphBBox(int gid)
Get the bounding box of a glyph.int
getGlyphCid(int glyphID)
int
getGlyphForChar(int usv)
Return the glyph to use to display a character.String
getGlyphName(int glyphID)
Get the name of glyphglyphID
.void
getGlyphOutline(int gid, OutlineConsumer consumer)
Send a glyph's outline to an OutlineConsumer.void
getGlyphOutline(int gid, OutlineConsumer consumer, int pathType)
double
getHorizontalAdvance(int gid)
Get the horizontal advance of a glyph.LineMetrics
getLineMetrics()
Return the line metrics for this font.int
getNumGlyphs()
Return the number of glyphs in this font.OpticalSizeData
getOpticalSizeData()
PDFFontDescription
getPDFFontDescription(Font font)
PlatformFontDescription[]
getPlatformFontDescription(Platform platform, ULocale locale)
Return the platform descriptions for this font.double[]
getPointSizeRange()
Return the range of point sizes for which this font has been designed.PostscriptFontDescription[]
getPostscriptFontDescription()
Return the postscript descriptions that this font matches.String
getPreferredCSSFamilyName()
ROS
getROS()
Scaler
getScaler(ScanConverter c)
Get a scaler for this font, using a specific scan converter.CatalogDescription
getSelectionDescription()
SWFFont4Description
getSWFFont4Description(boolean wasEmbedded)
SWFFontDescription
getSWFFontDescription(boolean wasEmbedded)
double
getUnitsPerEmX()
double
getUnitsPerEmY()
XDCFontDescription
getXDCFontDescription(Font font)
boolean
isCSSStyleItalic()
Tell if the font matches the CSS font-style italic.boolean
isCSSStyleNormal()
Tell if the font matches the CSS font-style normal.boolean
isCSSStyleOblique()
Tell if the font matches the CSS font-style oblique.boolean
isCSSVariantNormal()
Tell if the font matches the CSS font-variant normal.boolean
isCSSVariantSmallCaps()
Tell if the font matches the CSS font-variant small-caps.boolean
isSymbolic()
Tell whether the font is symbolic.void
subsetAndStream(Subset subset, OutputStream out, boolean preserveROS)
Subset and stream this font for PDF use.void
subsetAndStreamForSWFEmbedding(Subset subset, OutputStream out, TreeMap<Integer,List> gsubLookups, TreeSet cmapData, boolean includeVariationCmap)
-
Methods inherited from class com.adobe.fontengine.font.FontData
getContainerFingerprint, getCoolTypeFontBBox, getCoolTypeXHeight, getCSS20FontDescription, getPreferredCSS20FontDescription, getScaler, hasCoolTypeProportionalRoman
-
-
-
-
Field Detail
-
head
public final Head head
The 'head' table, if present, null otherwise
-
hhea
public final Hhea hhea
The 'hhea' table, if present, null otherwise
-
hmtx
public final Hmtx hmtx
The 'hmtx' table, if present, null otherwise
-
maxp
public final Maxp maxp
The 'maxp' table, if present, null otherwise
-
name
public final Name name
The 'name' table, if present, null otherwise
-
os2
public final Os2 os2
The 'OS/2' table, if present, null otherwise
-
cmap
public final Cmap cmap
The 'cmap' table, if present, null otherwise
-
post
public final Post post
The 'post' table, if present, null otherwise
-
gpos
public final Gpos gpos
The 'GPOS' table, if present, null otherwise
-
gsub
public final Gsub gsub
The 'GSUB' table, if present, null otherwise
-
gdef
public final Gdef gdef
The 'GDEF' table if present, null otherwise
-
base
public final Base base
The 'BASE' table if present, null otherwise
-
glyf
public final Glyf glyf
The 'glyf' table, if present, null otherwise
-
cff
public final Cff cff
The 'CFF' table, if present, null otherwise
-
vhea
public final Vhea vhea
The 'vhea' table, if present, null otherwise
-
vmtx
public final Vmtx vmtx
The 'vmtx' table, if present, null otherwise
-
cvt
public final Cvt cvt
The 'cvt' table, if present, null otherwise
-
fpgm
public final Fpgm fpgm
The 'fpgm' table, if present, null otherwise
-
prep
public final Prep prep
The 'prep' table, if present, null otherwise
-
kern
public final Kern kern
The 'kern' table, if present, null otherwise
-
gasp
public final Gasp gasp
The 'gasp' table, if present, null otherwise
-
ltsh
public final Ltsh ltsh
The 'LTSH' table if present, null otherwise
-
vorg
public final Vorg vorg
The 'VORG' table if present, null otherwise
-
fond
public final Fond fond
The Apple 'fond' table if present, null otherwise
-
-
Constructor Detail
-
OpenTypeFont
public OpenTypeFont(Map tables, byte[] digest, String base14CSSName, String base14PSName) throws InvalidFontException, UnsupportedFontException
-
-
Method Detail
-
isSymbolic
public boolean isSymbolic() throws UnsupportedFontException, InvalidFontException
Tell whether the font is symbolic.- Overrides:
isSymbolic
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getNumGlyphs
public int getNumGlyphs() throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the number of glyphs in this font.- Specified by:
getNumGlyphs
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getUnitsPerEmX
public double getUnitsPerEmX() throws UnsupportedFontException, InvalidFontException
- Specified by:
getUnitsPerEmX
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getUnitsPerEmY
public double getUnitsPerEmY() throws UnsupportedFontException, InvalidFontException
- Specified by:
getUnitsPerEmY
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getCoolTypeUnitsPerEm
public double getCoolTypeUnitsPerEm() throws UnsupportedFontException, InvalidFontException
- Overrides:
getCoolTypeUnitsPerEm
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getFontBBox
public Rect getFontBBox() throws InvalidFontException, UnsupportedFontException
- Specified by:
getFontBBox
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeRawFontBBox
public Rect getCoolTypeRawFontBBox() throws InvalidFontException, UnsupportedFontException
-
getCoolTypeScript
public CoolTypeScript getCoolTypeScript() throws UnsupportedFontException, InvalidFontException
- Specified by:
getCoolTypeScript
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getCoolTypeCapHeight
public double getCoolTypeCapHeight() throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Returns the CoolTypeCapHeight of this font.- Overrides:
getCoolTypeCapHeight
in classFontData
- Returns:
- Double.NaN if the value cannot be determined
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeIdeoEmBox
public Rect getCoolTypeIdeoEmBox() throws InvalidFontException, UnsupportedFontException
Compute the IdeoEmBox. Various heuristics are applied until the IdeoEmBox can be determined.- Specified by:
getCoolTypeIdeoEmBox
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeIcfBox
public Rect getCoolTypeIcfBox() throws InvalidFontException, UnsupportedFontException
Compute the IcfBox. Various heuristics are applied until the IcfBox can be determined.- Specified by:
getCoolTypeIcfBox
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeLineMetrics
public LineMetrics getCoolTypeLineMetrics() throws UnsupportedFontException, InvalidFontException
Emulates the CoolType API CTFontDict:GetHorizontalMetrics CoolType API.The metrics are expressed in the design space of the font, i.e. they need to be converted through the metrics matrix.
This methods never returns null.
See also the
getLineMetrics()
method.- Specified by:
getCoolTypeLineMetrics
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getLineMetrics
public LineMetrics getLineMetrics() throws UnsupportedFontException, InvalidFontException
Return the line metrics for this font.The metrics are expressed in the design space of the font, i.e. they need to be converted through the metrics matrix.
Some font formats do not support the notion of line metrics, and in those cases, this method returns null.
See also the
getCoolTypeLineMetrics()
method.- Overrides:
getLineMetrics
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getCoolTypeUnderlineMetrics
public UnderlineMetrics getCoolTypeUnderlineMetrics() throws UnsupportedFontException, InvalidFontException
- Specified by:
getCoolTypeUnderlineMetrics
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getCoolTypeProportionalRomanFromFontProperties
public boolean getCoolTypeProportionalRomanFromFontProperties() throws InvalidFontException
- Specified by:
getCoolTypeProportionalRomanFromFontProperties
in classFontData
- Throws:
InvalidFontException
-
computeRomanBaselineH
public int computeRomanBaselineH() throws InvalidFontException
- Throws:
InvalidFontException
-
computeRomanBaselineV
public double computeRomanBaselineV() throws UnsupportedFontException, InvalidFontException
-
getGlyphForChar
public int getGlyphForChar(int usv) throws InvalidFontException, UnsupportedFontException
Return the glyph to use to display a character. Depending on the layout technology of the font, the returned gid may be further processed.- Specified by:
getGlyphForChar
in classFontData
- Parameters:
usv
- the Unicode scalar value of the character; (by definition, surrogate code points are not Unicode scalar values).- Returns:
- the gid of the glyph to use
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeGlyphForChar
public int getCoolTypeGlyphForChar(int usv) throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the glyph used by CoolType for a character. This is slightly different from getGlyphForChar, and intend to be closer to the behavior of CoolType. The main use of this version is for other functions that emulate CoolType, such as the methods that compute metrics based on the charateristics of some glyphs. In most font types, this is the same as getGlyphForChar, so we provide a default implementation here.- Overrides:
getCoolTypeGlyphForChar
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCharForGlyph
public int getCharForGlyph(int gid) throws UnsupportedFontException, InvalidFontException
Find a character mapped to some glyph.- Parameters:
gid
- the target glyph- Returns:
- one of the characters mapped to the target glyph via the Microsoft/Unicode_BMP cmap if there is one, -1 if none
- Throws:
UnsupportedFontException
InvalidFontException
-
getHorizontalAdvance
public double getHorizontalAdvance(int gid) throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Get the horizontal advance of a glyph. The returned value is in metric space.- Specified by:
getHorizontalAdvance
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getGlyphOutline
public void getGlyphOutline(int gid, OutlineConsumer consumer, int pathType) throws UnsupportedFontException, InvalidFontException
-
getGlyphOutline
public void getGlyphOutline(int gid, OutlineConsumer consumer) throws UnsupportedFontException, InvalidFontException
Description copied from class:FontData
Send a glyph's outline to an OutlineConsumer.- Specified by:
getGlyphOutline
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getGlyphBBox
public Rect getGlyphBBox(int gid) throws UnsupportedFontException, InvalidFontException
Description copied from class:FontData
Get the bounding box of a glyph. The returned value is in metric space.- Specified by:
getGlyphBBox
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getScaler
public Scaler getScaler(ScanConverter c) throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Get a scaler for this font, using a specific scan converter.- Specified by:
getScaler
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getGlyphName
public String getGlyphName(int glyphID) throws UnsupportedFontException, InvalidFontException
Get the name of glyphglyphID
.
-
getROS
public ROS getROS()
-
getCIDCount
public int getCIDCount()
-
getGlyphCid
public int getGlyphCid(int glyphID) throws InvalidFontException, UnsupportedFontException
-
getSWFFontDescription
public SWFFontDescription getSWFFontDescription(boolean wasEmbedded) throws UnsupportedFontException, InvalidFontException
- Specified by:
getSWFFontDescription
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getSWFFont4Description
public SWFFont4Description getSWFFont4Description(boolean wasEmbedded) throws UnsupportedFontException, InvalidFontException
- Specified by:
getSWFFont4Description
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getPDFFontDescription
public PDFFontDescription getPDFFontDescription(Font font)
- Specified by:
getPDFFontDescription
in classFontData
-
getXDCFontDescription
public XDCFontDescription getXDCFontDescription(Font font)
- Specified by:
getXDCFontDescription
in classFontData
-
getEmbeddingPermission
public Permission getEmbeddingPermission(boolean wasEmbedded) throws InvalidFontException, UnsupportedFontException
- Specified by:
getEmbeddingPermission
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
createSubset
public Subset createSubset() throws UnsupportedFontException, InvalidFontException
Description copied from class:FontData
Create a subset for this font.- Specified by:
createSubset
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
subsetAndStream
public void subsetAndStream(Subset subset, OutputStream out, boolean preserveROS) throws InvalidFontException, UnsupportedFontException, IOException
Description copied from class:FontData
Subset and stream this font for PDF use. The stream is either a TrueType stream or a CID-keyed CFF stream.- Specified by:
subsetAndStream
in classFontData
out
- the OutputStream to which the bytes are streamedpreserveROS
- tells whether to preserve the cid -> gid mapping- Throws:
InvalidFontException
UnsupportedFontException
IOException
-
subsetAndStreamForSWFEmbedding
public void subsetAndStreamForSWFEmbedding(Subset subset, OutputStream out, TreeMap<Integer,List> gsubLookups, TreeSet cmapData, boolean includeVariationCmap) throws InvalidFontException, UnsupportedFontException, IOException
-
getCacheSupportInfo
public CacheSupportInfo getCacheSupportInfo() throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the CacheSupportInfo that this font matches- Specified by:
getCacheSupportInfo
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getPostscriptFontDescription
public PostscriptFontDescription[] getPostscriptFontDescription() throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the postscript descriptions that this font matches.- Specified by:
getPostscriptFontDescription
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCSSFamilyNames
public Set getCSSFamilyNames() throws InvalidFontException, UnsupportedFontException
Return the set of CSS font-family names that this font matches.
-
getPreferredCSSFamilyName
public String getPreferredCSSFamilyName() throws InvalidFontException, UnsupportedFontException
-
isCSSStyleNormal
public boolean isCSSStyleNormal() throws InvalidFontException, UnsupportedFontException
Tell if the font matches the CSS font-style normal.
-
isCSSStyleItalic
public boolean isCSSStyleItalic() throws InvalidFontException, UnsupportedFontException
Tell if the font matches the CSS font-style italic.
-
isCSSStyleOblique
public boolean isCSSStyleOblique() throws InvalidFontException, UnsupportedFontException
Tell if the font matches the CSS font-style oblique.
-
isCSSVariantNormal
public boolean isCSSVariantNormal()
Tell if the font matches the CSS font-variant normal.
-
isCSSVariantSmallCaps
public boolean isCSSVariantSmallCaps()
Tell if the font matches the CSS font-variant small-caps.
-
getCSSWeight
public int getCSSWeight() throws InvalidFontException
Return the CSS weight of this font.- Throws:
InvalidFontException
-
getFXGFontDescription
public FXGFontDescription[] getFXGFontDescription(Platform platform, ULocale locale) throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the FXG descriptions for this font.- Specified by:
getFXGFontDescription
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getPlatformFontDescription
public PlatformFontDescription[] getPlatformFontDescription(Platform platform, ULocale locale) throws InvalidFontException, UnsupportedFontException
Description copied from class:FontData
Return the platform descriptions for this font.- Specified by:
getPlatformFontDescription
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getOpticalSizeData
public OpticalSizeData getOpticalSizeData() throws InvalidFontException
- Throws:
InvalidFontException
-
getPointSizeRange
public double[] getPointSizeRange() throws InvalidFontException
Return the range of point sizes for which this font has been designed.- Overrides:
getPointSizeRange
in classFontData
- Returns:
- an array with exactly two elements. The first is the smallest intended point size (inclusive), the second is the largest intended point size (exclusive). Both numbers are in decipoints.
- Throws:
InvalidFontException
-
getSelectionDescription
public CatalogDescription getSelectionDescription() throws InvalidFontException, UnsupportedFontException
- Specified by:
getSelectionDescription
in classFontData
- Throws:
InvalidFontException
UnsupportedFontException
-
getCoolTypeGlyphBBox
public Rect getCoolTypeGlyphBBox(int glyphID) throws UnsupportedFontException, InvalidFontException
- Overrides:
getCoolTypeGlyphBBox
in classFontData
- Throws:
UnsupportedFontException
InvalidFontException
-
getCFFFont
public CFFFont getCFFFont()
-
-