Package com.adobe.fontengine.font.opentype
Classes to manipulate OpenType fonts.
The OpenTypeFont
class
represents an OpenType font. Such a font can have either TrueType or CFF
outlines.
The class Container
provides one useful (static) method: Container.load
to create
a bunch of OpenTypeFont
from a stream of bytes. Most OpenType byte stream contain a
single font, but TTC streams can contain multiple, usually related, fonts.
Each table in an OpenType font has a corresponding class, except for the 'loca'
table which is better though of as an adjunct in the 'glyf' table. Typically,
the OpenTypeFont
object has one member for each table.
There are also a few utility classes, such as Tag
.
Format version
OpenType uses versioning to allow for extensions to the format. In general, each table is equipped with a version number, made of a major version and a minor version (there are some tables which have only a minor version, or no version at all). The rule is that backward compatible extensions increment the minor version number, while backward incompatible extensions increment the major version number.
The classes in this package are programmed to fully handle all know format
versions at the time they are written. Each class corresponding to a table
specifies the format versions is fully handles. For example, the Post
class specifies that it handles versions 1.0, 2.0, 2.5, and 3.0. The classes
are also programmed to handle unknown version numbers, in the following way:
let s(M) be the set of the supported minor version numbers for major version M;
if an actual table has version Ma.ma, then
-
if s(Ma) is the empty set, or if ma is less than any of s(Ma), then the table
is rejected at the time the
OpenTypeFont
object is created. This may or may not cause the whole font to be rejected. -
otherwise, the table is interpreted according to minor version m which is the
smallif the major version of an actual table is supported, but the actual minor
version is not, then the largest If an actual font table has a major version
number which is not supported at all, then the table is rejected at the time
the
OpenTypeFont
object is created.
-
Interface Summary Interface Description Cmap.CmapSelector Class used to receive the list of recognized subtables in this cmap table.Gasp.BehaviorBits Glyf.CoordFlags Glyf.Flags Os2.SelectionBits -
Class Summary Class Description Base Cff Gives access to a 'CFF' table.Cmap Gives access to a 'cmap' table.Cmap.MacEncodingID Cmap.MS_EncodingID Cmap.PlatformID Enum classes for the various platformIDs and encodingIDs.Cmap.UnicodeEncodingID Cvt Gives access to the 'cvt' table.FetchGlyphNameTT Fond Gives access to the Apple 'fond' table.FontFactory Creates font objects for OpenType fontsFpgm Gives access to the 'fpgm' table.Gasp Gives access to the 'gasp' table.Gdef Gives access to a 'GDEF' table.Glyf Gives access to the 'glyf' table.GlyphNames This class supports PostScript glyph names.GlyphNamesResourceBuilder Gpos Gives access to the 'GPOS' table.Gsub Gives access to the 'GSUB' table.Head Gives access to the 'head' table.Hhea Gives access to the 'hhea' table.Hmtx Gives access to the 'hmtx' table.Kern Gives access to the 'kern' table.LayoutTable A LayoutTable is the base class for GSUB/GPOS/GDEF/BASE tables, and captures the common types: coverages, class definitions, etc.LookupTable A LookupTable is the base class for GSUB/GPOS tables.LookupTableHarvester Ltsh Gives access to the 'LTSH' table.Maxp Gives access to the 'maxp' table.Name Gives access to the 'name' table.Name.LanguageCodeEntry Name.MacintoshEncodingId This class defines constants for the Macintosh encoding ids.Name.MacintoshLanguageCode Name.MicrosoftEncodingId This class defines constants for the Microsoft encoding ids.Name.MicrosoftLCID This class defines constants for the Microsoft language ids.Name.PlatformId This class defines constants for the platform ids.Name.PredefinedNames This class defines constants for the predefined entries in a 'name' table.OpenTypeFont Gives access to an OpenType fontOpticalSizeData Represents the optical size data for an OpenType font.Orientation Os2 Gives access to the 'OS/2' table.Os2.CodePage Identifies a code page.Os2.UnicodeRange Identifies a Unicode range.OTByteArray A sequence of bytes in an OpenType font file, with methods to access the basic types.OTSelector Determine if a feature can be applied at some positions.OTSelectorAtLigatureLevel OTSelectorEverywhere OTSelectorOnElementAttribute OTSelectors Common OTSelector objects.OTSubset PDFEncodingBuilderImpl Post Gives access to the 'post' table.Prep Gives access to the 'prep' table.Table Base class for an OpenType tableTag Tag manipulation and predefined tags.TrueTypeGlyphBBoxCalculator TTCompositeOutline A TrueType composite outline.TTCompositeOutline.TTComponent TTInterpreter Interprets TT programs.TTOutline A TrueType outline.TTPoint Represents a point in a TrueType outline.TTScaler AScaler
for OpenType fonts with TrueType outlines.TTSimpleOutline A TrueType simple outline.Vhea Gives access to the 'vhea' table.Vmtx Gives access to the 'vmtx' table.Vorg Gives access to the 'VORG' table.ZoneHint