Class GlyphPositioningTable
java.lang.Object
org.docx4j.fonts.fop.complexscripts.fonts.GlyphTable
org.docx4j.fonts.fop.complexscripts.fonts.GlyphPositioningTable
public class GlyphPositioningTable extends GlyphTable
The GlyphPositioningTable class is a glyph table that implements
GlyphPositioning functionality.
This work was originally authored by Glenn Adams (gadams@apache.org).
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classGlyphPositioningTable.AnchorTheAnchorclass implements a anchor record, comprising an X,Y coordinate pair, an optional anchor point index (or -1), and optional X or Y device tables (or null if absent).static classGlyphPositioningTable.DeviceTableTheDeviceTableclass implements a positioning device table record, comprising adjustments to be made to scaled design units according to the scaled size.static classGlyphPositioningTable.MarkAnchorTheMarkAnchorclass is a subclass of theAnchorclass, adding a mark class designation.static classGlyphPositioningTable.PairValuesThePairValuesclass implements a pair value record, comprising a glyph id (or zero) and two optional positioning values.static classGlyphPositioningTable.ValueTheValueclass implements a positioning value record, comprising placement and advancement information in X and Y axes, and optionally including device data used to perform device (grid-fitted) specific fine grain adjustments.Nested classes/interfaces inherited from class org.docx4j.fonts.fop.complexscripts.fonts.GlyphTable
GlyphTable.ChainedClassSequenceRule, GlyphTable.ChainedCoverageSequenceRule, GlyphTable.ChainedGlyphSequenceRule, GlyphTable.ClassSequenceRule, GlyphTable.CoverageSequenceRule, GlyphTable.GlyphSequenceRule, GlyphTable.HomogeneousRuleSet, GlyphTable.LookupSpec, GlyphTable.LookupTable, GlyphTable.Rule, GlyphTable.RuleLookup, GlyphTable.RuleSet, GlyphTable.UseSpec -
Field Summary
Fields Modifier and Type Field Description static intGPOS_LOOKUP_TYPE_CHAINED_CONTEXTUALchained contextual positioning subtable typestatic intGPOS_LOOKUP_TYPE_CONTEXTUALcontextual positioning subtable typestatic intGPOS_LOOKUP_TYPE_CURSIVEcursive positioning subtable typestatic intGPOS_LOOKUP_TYPE_EXTENSION_POSITIONINGextension positioning subtable typestatic intGPOS_LOOKUP_TYPE_MARK_TO_BASEmark to base positioning subtable typestatic intGPOS_LOOKUP_TYPE_MARK_TO_LIGATUREmark to ligature positioning subtable typestatic intGPOS_LOOKUP_TYPE_MARK_TO_MARKmark to mark positioning subtable typestatic intGPOS_LOOKUP_TYPE_PAIRmultiple positioning subtable typestatic intGPOS_LOOKUP_TYPE_SINGLEsingle positioning subtable typeFields inherited from class org.docx4j.fonts.fop.complexscripts.fonts.GlyphTable
GLYPH_TABLE_TYPE_BASELINE, GLYPH_TABLE_TYPE_DEFINITION, GLYPH_TABLE_TYPE_JUSTIFICATION, GLYPH_TABLE_TYPE_POSITIONING, GLYPH_TABLE_TYPE_SUBSTITUTION, processors -
Constructor Summary
Constructors Constructor Description GlyphPositioningTable(GlyphDefinitionTable gdef, java.util.Map lookups, java.util.List subtables, java.util.Map<java.lang.String,ScriptProcessor> processors)Instantiate aGlyphPositioningTableobject using the specified lookups and subtables. -
Method Summary
Modifier and Type Method Description static GlyphSubtablecreateSubtable(int type, java.lang.String id, int sequence, int flags, int format, java.util.List coverage, java.util.List entries)Create a positioning subtable according to the specified arguments.static GlyphSubtablecreateSubtable(int type, java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)Create a positioning subtable according to the specified arguments.static intgetLookupTypeFromName(java.lang.String name)Map a lookup type name to its constant (integer) value.static java.lang.StringgetLookupTypeName(int type)Map a lookup type constant (integer) value to its name.booleanposition(GlyphSequence gs, java.lang.String script, java.lang.String language, int fontSize, int[] widths, int[][] adjustments)Perform positioning processing using all matching lookups.Methods inherited from class org.docx4j.fonts.fop.complexscripts.fonts.GlyphTable
addSubtable, assembleLookups, findLookupTables, freezeSubtables, getGlyphDefinitions, getLookups, getLookupTable, getLookupTables, getTableTypeFromName, hasFeature, matchLookups, matchLookupSpecs, resolveLookupReferences, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
GPOS_LOOKUP_TYPE_SINGLE
public static final int GPOS_LOOKUP_TYPE_SINGLEsingle positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_PAIR
public static final int GPOS_LOOKUP_TYPE_PAIRmultiple positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_CURSIVE
public static final int GPOS_LOOKUP_TYPE_CURSIVEcursive positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_MARK_TO_BASE
public static final int GPOS_LOOKUP_TYPE_MARK_TO_BASEmark to base positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_MARK_TO_LIGATURE
public static final int GPOS_LOOKUP_TYPE_MARK_TO_LIGATUREmark to ligature positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_MARK_TO_MARK
public static final int GPOS_LOOKUP_TYPE_MARK_TO_MARKmark to mark positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_CONTEXTUAL
public static final int GPOS_LOOKUP_TYPE_CONTEXTUALcontextual positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_CHAINED_CONTEXTUAL
public static final int GPOS_LOOKUP_TYPE_CHAINED_CONTEXTUALchained contextual positioning subtable type- See Also:
- Constant Field Values
-
GPOS_LOOKUP_TYPE_EXTENSION_POSITIONING
public static final int GPOS_LOOKUP_TYPE_EXTENSION_POSITIONINGextension positioning subtable type- See Also:
- Constant Field Values
-
-
Constructor Details
-
GlyphPositioningTable
public GlyphPositioningTable(GlyphDefinitionTable gdef, java.util.Map lookups, java.util.List subtables, java.util.Map<java.lang.String,ScriptProcessor> processors)Instantiate aGlyphPositioningTableobject using the specified lookups and subtables.- Parameters:
gdef- glyph definition table that applieslookups- a map of lookup specifications to subtable identifier stringssubtables- a list of identified subtables
-
-
Method Details
-
getLookupTypeFromName
public static int getLookupTypeFromName(java.lang.String name)Map a lookup type name to its constant (integer) value.- Parameters:
name- lookup type name- Returns:
- lookup type
-
getLookupTypeName
public static java.lang.String getLookupTypeName(int type)Map a lookup type constant (integer) value to its name.- Parameters:
type- lookup type- Returns:
- lookup type name
-
createSubtable
public static GlyphSubtable createSubtable(int type, java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)Create a positioning subtable according to the specified arguments.- Parameters:
type- subtable typeid- subtable identifiersequence- subtable sequenceflags- subtable flagsformat- subtable formatcoverage- subtable coverage tableentries- subtable entries- Returns:
- a glyph subtable instance
-
createSubtable
public static GlyphSubtable createSubtable(int type, java.lang.String id, int sequence, int flags, int format, java.util.List coverage, java.util.List entries)Create a positioning subtable according to the specified arguments.- Parameters:
type- subtable typeid- subtable identifiersequence- subtable sequenceflags- subtable flagsformat- subtable formatcoverage- list of coverage table entriesentries- subtable entries- Returns:
- a glyph subtable instance
-
position
public boolean position(GlyphSequence gs, java.lang.String script, java.lang.String language, int fontSize, int[] widths, int[][] adjustments)Perform positioning processing using all matching lookups.- Parameters:
gs- an input glyph sequencescript- a script identifierlanguage- a language identifierfontSize- size in device unitswidths- array of default advancements for each glyphadjustments- accumulated adjustments array (sequence) of 4-tuples of placement [PX,PY] and advance [AX,AY] adjustments, in that order, with one 4-tuple for each element of glyph sequence- Returns:
- true if some adjustment is not zero; otherwise, false
-