Class OTFAdvancedTypographicTableReader
- java.lang.Object
-
- org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader
-
public final class OTFAdvancedTypographicTableReader extends java.lang.ObjectOpenType Font (OTF) advanced typographic table reader. Used by @{Link org.apache.fop.fonts.truetype.TTFFile} to read advanced typographic tables (GDEF, GSUB, GPOS).
This work was originally authored by Glenn Adams (gadams@apache.org).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classOTFAdvancedTypographicTableReader.GDEFLookupType(package private) static classOTFAdvancedTypographicTableReader.GPOSLookupType(package private) static classOTFAdvancedTypographicTableReader.GSUBLookupType(package private) static classOTFAdvancedTypographicTableReader.LookupFlag
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringdefaultTagprivate GlyphDefinitionTablegdefprivate GlyphPositioningTablegposprivate GlyphSubstitutionTablegsubprivate FontFileReaderinprivate static org.apache.commons.logging.Loglogprivate OpenFontotfprivate java.util.Map<java.lang.String,ScriptProcessor>processorsprivate java.util.ListseEntriesprivate java.util.Map<java.lang.String,java.lang.Object>seFeaturesprivate java.util.Map<java.lang.String,java.lang.Object>seLanguagesprivate GlyphMappingTableseMappingprivate java.util.Map<java.lang.String,java.lang.Object>seScriptsprivate java.util.ListseSubtables
-
Constructor Summary
Constructors Constructor Description OTFAdvancedTypographicTableReader(OpenFont otf, FontFileReader in)Construct anOTFAdvancedTypographicTableReaderinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private GlyphDefinitionTableconstructGDEF()Construct the (internal representation of the) GDEF table based on previously parsed state.private GlyphSubtableconstructGDEFSubtable(java.lang.Object[] stp)private java.util.ListconstructGDEFSubtables()private GlyphPositioningTableconstructGPOS()Construct the (internal representation of the) GPOS table based on previously parsed state.private GlyphSubtableconstructGPOSSubtable(java.lang.Object[] stp)private java.util.ListconstructGPOSSubtables()private GlyphSubstitutionTableconstructGSUB()Construct the (internal representation of the) GSUB table based on previously parsed state.private GlyphSubtableconstructGSUBSubtable(java.lang.Object[] stp)private java.util.ListconstructGSUBSubtables()private java.util.MapconstructLookups()private voidconstructLookupsFeature(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.lang.String fid)private voidconstructLookupsFeatures(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.util.List<java.lang.String> fids)private voidconstructLookupsLanguage(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.util.Map<java.lang.String,java.lang.Object> languages)private voidconstructLookupsLanguages(java.util.Map lookups, java.lang.String st, java.util.List<java.lang.String> ll, java.util.Map<java.lang.String,java.lang.Object> languages)private voidextractSESubState(int tableType, int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, int subtableFormat)GlyphDefinitionTablegetGDEF()Returns the GDEF table or null if none present.GlyphPositioningTablegetGPOS()Returns the GPOS table or null if none present.GlyphSubstitutionTablegetGSUB()Returns the GSUB table or null if none present.booleanhasAdvancedTable()Determine if advanced (typographic) table is present.private voidinitATState()private voidinitATSubState()voidreadAll()Read all advanced typographic tables.private intreadAlternateSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadAlternateSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadChainedContextualPosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadChainedContextualPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadChainedContextualPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadChainedContextualPosTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadChainedContextualSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadChainedContextualSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadChainedContextualSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadChainedContextualSubTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private GlyphClassTablereadClassDefTable(java.lang.String label, long tableOffset)private GlyphClassTablereadClassDefTableFormat1(java.lang.String label, long tableOffset, int classFormat)private GlyphClassTablereadClassDefTableFormat2(java.lang.String label, long tableOffset, int classFormat)private voidreadCommonLayoutTables(OFTableName tableTag, long scriptList, long featureList, long lookupList)Read the common layout tables (used by GSUB and GPOS).private intreadContextualPosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadContextualPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadContextualPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadContextualPosTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadContextualSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadContextualSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadContextualSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadContextualSubTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private GlyphCoverageTablereadCoverageTable(java.lang.String label, long tableOffset)private GlyphCoverageTablereadCoverageTableFormat1(java.lang.String label, long tableOffset, int coverageFormat)private GlyphCoverageTablereadCoverageTableFormat2(java.lang.String label, long tableOffset, int coverageFormat)private intreadCursivePosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadCursivePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadExtensionPosTable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset)private voidreadExtensionPosTableFormat1(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset, int subtableFormat)private intreadExtensionSubTable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset)private voidreadExtensionSubTableFormat1(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset, int subtableFormat)private voidreadFeatureList(OFTableName tableTag, long featureList)private voidreadFeatureTable(OFTableName tableTag, long featureTable, java.lang.String featureTag, int featureIndex)private voidreadGDEF()Read the GDEF table.private voidreadGDEFAttachmentTable(OFTableName tableTag, int lookupSequence, long subtableOffset)private voidreadGDEFClassDefTable(OFTableName tableTag, int lookupSequence, long subtableOffset)private voidreadGDEFLigatureCaretTable(OFTableName tableTag, int lookupSequence, long subtableOffset)private voidreadGDEFMarkAttachmentTable(OFTableName tableTag, int lookupSequence, long subtableOffset)private voidreadGDEFMarkGlyphsTable(OFTableName tableTag, int lookupSequence, long subtableOffset)private voidreadGDEFMarkGlyphsTableFormat1(OFTableName tableTag, int lookupSequence, long subtableOffset, int subtableFormat)private voidreadGPOS()Read the GPOS table.private voidreadGPOSSubtable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset)private voidreadGSUB()Read the GSUB table.private voidreadGSUBSubtable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset)private voidreadLangSysTable(OFTableName tableTag, long langSysTable, java.lang.String langSysTag)private intreadLigatureSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadLigatureSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadLookupList(OFTableName tableTag, long lookupList)private voidreadLookupTable(OFTableName tableTag, int lookupSequence, long lookupTable)private intreadMarkToBasePosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadMarkToBasePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadMarkToLigaturePosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadMarkToLigaturePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadMarkToMarkPosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadMarkToMarkPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadMultipleSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadMultipleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadPairPosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadPairPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadPairPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private GlyphPositioningTable.AnchorreadPosAnchor(long anchorTableOffset)private GlyphPositioningTable.DeviceTablereadPosDeviceTable(long subtableOffset, long deviceTableOffset)private GlyphPositioningTable.PairValues[]readPosPairSetTable(long subtableOffset, int pairSetTableOffset, int vf1, int vf2)private GlyphPositioningTable.PairValuesreadPosPairValues(long subtableOffset, boolean hasGlyph, int vf1, int vf2)private GlyphPositioningTable.ValuereadPosValue(long subtableOffset, int valueFormat)private intreadReverseChainedSingleSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadReverseChainedSingleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private GlyphTable.RuleLookup[]readRuleLookups(int numLookups, java.lang.String header)private voidreadScriptList(OFTableName tableTag, long scriptList)private voidreadScriptTable(OFTableName tableTag, long scriptTable, java.lang.String scriptTag)private intreadSinglePosTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadSinglePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadSinglePosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private intreadSingleSubTable(int lookupType, int lookupFlags, long subtableOffset)private voidreadSingleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidreadSingleSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat)private voidresetATState()private voidresetATStateAll()private voidresetATSubState()private java.lang.StringtoString(int[] ia)helper method for formatting an integer array for output
-
-
-
Field Detail
-
log
private static org.apache.commons.logging.Log log
-
otf
private OpenFont otf
-
in
private FontFileReader in
-
gdef
private GlyphDefinitionTable gdef
-
gsub
private GlyphSubstitutionTable gsub
-
gpos
private GlyphPositioningTable gpos
-
seScripts
private transient java.util.Map<java.lang.String,java.lang.Object> seScripts
-
seLanguages
private transient java.util.Map<java.lang.String,java.lang.Object> seLanguages
-
seFeatures
private transient java.util.Map<java.lang.String,java.lang.Object> seFeatures
-
seMapping
private transient GlyphMappingTable seMapping
-
seEntries
private transient java.util.List seEntries
-
seSubtables
private transient java.util.List seSubtables
-
processors
private java.util.Map<java.lang.String,ScriptProcessor> processors
-
defaultTag
private static java.lang.String defaultTag
-
-
Constructor Detail
-
OTFAdvancedTypographicTableReader
public OTFAdvancedTypographicTableReader(OpenFont otf, FontFileReader in)
Construct anOTFAdvancedTypographicTableReaderinstance.- Parameters:
otf- parent font file reader (must be non-null)in- font file reader (must be non-null)
-
-
Method Detail
-
readAll
public void readAll() throws AdvancedTypographicTableFormatExceptionRead all advanced typographic tables.- Throws:
AdvancedTypographicTableFormatException- if ATT table has invalid format
-
hasAdvancedTable
public boolean hasAdvancedTable()
Determine if advanced (typographic) table is present.- Returns:
- true if advanced (typographic) table is present
-
getGDEF
public GlyphDefinitionTable getGDEF()
Returns the GDEF table or null if none present.- Returns:
- the GDEF table
-
getGSUB
public GlyphSubstitutionTable getGSUB()
Returns the GSUB table or null if none present.- Returns:
- the GSUB table
-
getGPOS
public GlyphPositioningTable getGPOS()
Returns the GPOS table or null if none present.- Returns:
- the GPOS table
-
readLangSysTable
private void readLangSysTable(OFTableName tableTag, long langSysTable, java.lang.String langSysTag) throws java.io.IOException
- Throws:
java.io.IOException
-
readScriptTable
private void readScriptTable(OFTableName tableTag, long scriptTable, java.lang.String scriptTag) throws java.io.IOException
- Throws:
java.io.IOException
-
readScriptList
private void readScriptList(OFTableName tableTag, long scriptList) throws java.io.IOException
- Throws:
java.io.IOException
-
readFeatureTable
private void readFeatureTable(OFTableName tableTag, long featureTable, java.lang.String featureTag, int featureIndex) throws java.io.IOException
- Throws:
java.io.IOException
-
readFeatureList
private void readFeatureList(OFTableName tableTag, long featureList) throws java.io.IOException
- Throws:
java.io.IOException
-
readCoverageTableFormat1
private GlyphCoverageTable readCoverageTableFormat1(java.lang.String label, long tableOffset, int coverageFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readCoverageTableFormat2
private GlyphCoverageTable readCoverageTableFormat2(java.lang.String label, long tableOffset, int coverageFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readCoverageTable
private GlyphCoverageTable readCoverageTable(java.lang.String label, long tableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readClassDefTableFormat1
private GlyphClassTable readClassDefTableFormat1(java.lang.String label, long tableOffset, int classFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readClassDefTableFormat2
private GlyphClassTable readClassDefTableFormat2(java.lang.String label, long tableOffset, int classFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readClassDefTable
private GlyphClassTable readClassDefTable(java.lang.String label, long tableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readSingleSubTableFormat1
private void readSingleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readSingleSubTableFormat2
private void readSingleSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readSingleSubTable
private int readSingleSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readMultipleSubTableFormat1
private void readMultipleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readMultipleSubTable
private int readMultipleSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readAlternateSubTableFormat1
private void readAlternateSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readAlternateSubTable
private int readAlternateSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readLigatureSubTableFormat1
private void readLigatureSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readLigatureSubTable
private int readLigatureSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readRuleLookups
private GlyphTable.RuleLookup[] readRuleLookups(int numLookups, java.lang.String header) throws java.io.IOException
- Throws:
java.io.IOException
-
readContextualSubTableFormat1
private void readContextualSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualSubTableFormat2
private void readContextualSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualSubTableFormat3
private void readContextualSubTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualSubTable
private int readContextualSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualSubTableFormat1
private void readChainedContextualSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualSubTableFormat2
private void readChainedContextualSubTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualSubTableFormat3
private void readChainedContextualSubTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualSubTable
private int readChainedContextualSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readExtensionSubTableFormat1
private void readExtensionSubTableFormat1(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readExtensionSubTable
private int readExtensionSubTable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readReverseChainedSingleSubTableFormat1
private void readReverseChainedSingleSubTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readReverseChainedSingleSubTable
private int readReverseChainedSingleSubTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readGSUBSubtable
private void readGSUBSubtable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readPosDeviceTable
private GlyphPositioningTable.DeviceTable readPosDeviceTable(long subtableOffset, long deviceTableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readPosValue
private GlyphPositioningTable.Value readPosValue(long subtableOffset, int valueFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readSinglePosTableFormat1
private void readSinglePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readSinglePosTableFormat2
private void readSinglePosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readSinglePosTable
private int readSinglePosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readPosPairValues
private GlyphPositioningTable.PairValues readPosPairValues(long subtableOffset, boolean hasGlyph, int vf1, int vf2) throws java.io.IOException
- Throws:
java.io.IOException
-
readPosPairSetTable
private GlyphPositioningTable.PairValues[] readPosPairSetTable(long subtableOffset, int pairSetTableOffset, int vf1, int vf2) throws java.io.IOException
- Throws:
java.io.IOException
-
readPairPosTableFormat1
private void readPairPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readPairPosTableFormat2
private void readPairPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readPairPosTable
private int readPairPosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readPosAnchor
private GlyphPositioningTable.Anchor readPosAnchor(long anchorTableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readCursivePosTableFormat1
private void readCursivePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readCursivePosTable
private int readCursivePosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToBasePosTableFormat1
private void readMarkToBasePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToBasePosTable
private int readMarkToBasePosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToLigaturePosTableFormat1
private void readMarkToLigaturePosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToLigaturePosTable
private int readMarkToLigaturePosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToMarkPosTableFormat1
private void readMarkToMarkPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readMarkToMarkPosTable
private int readMarkToMarkPosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualPosTableFormat1
private void readContextualPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualPosTableFormat2
private void readContextualPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualPosTableFormat3
private void readContextualPosTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readContextualPosTable
private int readContextualPosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualPosTableFormat1
private void readChainedContextualPosTableFormat1(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualPosTableFormat2
private void readChainedContextualPosTableFormat2(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualPosTableFormat3
private void readChainedContextualPosTableFormat3(int lookupType, int lookupFlags, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readChainedContextualPosTable
private int readChainedContextualPosTable(int lookupType, int lookupFlags, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readExtensionPosTableFormat1
private void readExtensionPosTableFormat1(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset, int subtableFormat) throws java.io.IOException- Throws:
java.io.IOException
-
readExtensionPosTable
private int readExtensionPosTable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readGPOSSubtable
private void readGPOSSubtable(int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, long subtableOffset) throws java.io.IOException- Throws:
java.io.IOException
-
readLookupTable
private void readLookupTable(OFTableName tableTag, int lookupSequence, long lookupTable) throws java.io.IOException
- Throws:
java.io.IOException
-
readLookupList
private void readLookupList(OFTableName tableTag, long lookupList) throws java.io.IOException
- Throws:
java.io.IOException
-
readCommonLayoutTables
private void readCommonLayoutTables(OFTableName tableTag, long scriptList, long featureList, long lookupList) throws java.io.IOException
Read the common layout tables (used by GSUB and GPOS).- Parameters:
tableTag- tag of table being readscriptList- offset to script list from beginning of font filefeatureList- offset to feature list from beginning of font filelookupList- offset to lookup list from beginning of font file- Throws:
java.io.IOException- In case of a I/O problem
-
readGDEFClassDefTable
private void readGDEFClassDefTable(OFTableName tableTag, int lookupSequence, long subtableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEFAttachmentTable
private void readGDEFAttachmentTable(OFTableName tableTag, int lookupSequence, long subtableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEFLigatureCaretTable
private void readGDEFLigatureCaretTable(OFTableName tableTag, int lookupSequence, long subtableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEFMarkAttachmentTable
private void readGDEFMarkAttachmentTable(OFTableName tableTag, int lookupSequence, long subtableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEFMarkGlyphsTableFormat1
private void readGDEFMarkGlyphsTableFormat1(OFTableName tableTag, int lookupSequence, long subtableOffset, int subtableFormat) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEFMarkGlyphsTable
private void readGDEFMarkGlyphsTable(OFTableName tableTag, int lookupSequence, long subtableOffset) throws java.io.IOException
- Throws:
java.io.IOException
-
readGDEF
private void readGDEF() throws java.io.IOExceptionRead the GDEF table.- Throws:
java.io.IOException- In case of a I/O problem
-
readGSUB
private void readGSUB() throws java.io.IOExceptionRead the GSUB table.- Throws:
java.io.IOException- In case of a I/O problem
-
readGPOS
private void readGPOS() throws java.io.IOExceptionRead the GPOS table.- Throws:
java.io.IOException- In case of a I/O problem
-
constructGDEF
private GlyphDefinitionTable constructGDEF()
Construct the (internal representation of the) GDEF table based on previously parsed state.
-
constructGSUB
private GlyphSubstitutionTable constructGSUB()
Construct the (internal representation of the) GSUB table based on previously parsed state.
-
constructGPOS
private GlyphPositioningTable constructGPOS()
Construct the (internal representation of the) GPOS table based on previously parsed state.
-
constructLookupsFeature
private void constructLookupsFeature(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.lang.String fid)
-
constructLookupsFeatures
private void constructLookupsFeatures(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.util.List<java.lang.String> fids)
-
constructLookupsLanguage
private void constructLookupsLanguage(java.util.Map lookups, java.lang.String st, java.lang.String lt, java.util.Map<java.lang.String,java.lang.Object> languages)
-
constructLookupsLanguages
private void constructLookupsLanguages(java.util.Map lookups, java.lang.String st, java.util.List<java.lang.String> ll, java.util.Map<java.lang.String,java.lang.Object> languages)
-
constructLookups
private java.util.Map constructLookups()
-
constructGDEFSubtables
private java.util.List constructGDEFSubtables()
-
constructGDEFSubtable
private GlyphSubtable constructGDEFSubtable(java.lang.Object[] stp)
-
constructGSUBSubtables
private java.util.List constructGSUBSubtables()
-
constructGSUBSubtable
private GlyphSubtable constructGSUBSubtable(java.lang.Object[] stp)
-
constructGPOSSubtables
private java.util.List constructGPOSSubtables()
-
constructGPOSSubtable
private GlyphSubtable constructGPOSSubtable(java.lang.Object[] stp)
-
initATState
private void initATState()
-
resetATState
private void resetATState()
-
initATSubState
private void initATSubState()
-
extractSESubState
private void extractSESubState(int tableType, int lookupType, int lookupFlags, int lookupSequence, int subtableSequence, int subtableFormat)
-
resetATSubState
private void resetATSubState()
-
resetATStateAll
private void resetATStateAll()
-
toString
private java.lang.String toString(int[] ia)
helper method for formatting an integer array for output
-
-