Class IndicScriptProcessor
java.lang.Object
org.apache.fop.complexscripts.scripts.ScriptProcessor
org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
org.apache.fop.complexscripts.scripts.IndicScriptProcessor
- Direct Known Subclasses:
DevanagariScriptProcessor
,GujaratiScriptProcessor
,GurmukhiScriptProcessor
,KhmerScriptProcessor
,TamilScriptProcessor
The IndicScriptProcessor
class implements a script processor for
performing glyph substitution and positioning operations on content associated with the Indic script.
This work was originally authored by Glenn Adams (gadams@apache.org).
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
Default syllabizer.protected static class
Syllabic segment.protected static class
Abstract syllabizer. -
Method Summary
Modifier and TypeMethodDescriptionprotected int
Find pre-base matra in sequence.protected int
findPreBaseMatraTarget
(GlyphSequence gs, int source) Find pre-base matra target in sequence.protected int
Find reph in sequence.protected int
findRephTarget
(GlyphSequence gs, int source) Find reph target in sequence.String[]
Obtain script specific optional positioning features.String[]
Obtain script specific optional substitution features.Obtain script specific positioning context tester.String[]
Obtain script specific required positioning features.Obtain script specific substitution context tester.String[]
Obtain script specific required substitution features.protected Class<? extends IndicScriptProcessor.Syllabizer>
Get script specific syllabizer class.static ScriptProcessor
makeProcessor
(String script) Make script specific flavor of Indic script processor.boolean
position
(GlyphSequence gs, String script, String language, int fontSize, GlyphTable.UseSpec[] usa, int[] widths, int[][] adjustments, ScriptContextTester sct) Perform positioning processing using a specific set of ordered glyph table use specifications.substitute
(GlyphSequence gs, String script, String language, GlyphTable.UseSpec[] usa, ScriptContextTester sct) Perform substitution processing using a specific set of ordered glyph table use specifications.Methods inherited from class org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
isReorderedMark, reorderCombiningMarks
Methods inherited from class org.apache.fop.complexscripts.scripts.ScriptProcessor
assembleLookups, getInstance, getScript, position, preProcess, substitute
-
Method Details
-
makeProcessor
Make script specific flavor of Indic script processor.- Parameters:
script
- tag- Returns:
- script processor instance
-
getSubstitutionFeatures
Obtain script specific required substitution features.- Overrides:
getSubstitutionFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported substitution features or null
-
getOptionalSubstitutionFeatures
Obtain script specific optional substitution features.- Overrides:
getOptionalSubstitutionFeatures
in classScriptProcessor
- Returns:
- array of suppported substitution features or null
-
getSubstitutionContextTester
Obtain script specific substitution context tester.- Overrides:
getSubstitutionContextTester
in classDefaultScriptProcessor
- Returns:
- substitution context tester or null
-
getPositioningFeatures
Obtain script specific required positioning features.- Overrides:
getPositioningFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported positioning features or null
-
getOptionalPositioningFeatures
Obtain script specific optional positioning features.- Overrides:
getOptionalPositioningFeatures
in classScriptProcessor
- Returns:
- array of suppported positioning features or null
-
getPositioningContextTester
Obtain script specific positioning context tester.- Overrides:
getPositioningContextTester
in classDefaultScriptProcessor
- Returns:
- positioning context tester or null
-
substitute
public GlyphSequence substitute(GlyphSequence gs, String script, String language, GlyphTable.UseSpec[] usa, ScriptContextTester sct) Perform substitution processing using a specific set of ordered glyph table use specifications.- Overrides:
substitute
in classScriptProcessor
- Parameters:
gs
- an input glyph sequencescript
- a script identifierlanguage
- a language identifierusa
- an ordered array of glyph table use specssct
- a script specific context tester (or null)- Returns:
- the substituted (output) glyph sequence
-
getSyllabizerClass
Get script specific syllabizer class.- Returns:
- a syllabizer class object or null
-
findPreBaseMatra
Find pre-base matra in sequence.- Parameters:
gs
- input sequence- Returns:
- index of pre-base matra or -1 if not found
-
findPreBaseMatraTarget
Find pre-base matra target in sequence.- Parameters:
gs
- input sequencesource
- index of pre-base matra- Returns:
- index of pre-base matra target or -1
-
findReph
Find reph in sequence.- Parameters:
gs
- input sequence- Returns:
- index of reph or -1 if not found
-
findRephTarget
Find reph target in sequence.- Parameters:
gs
- input sequencesource
- index of reph- Returns:
- index of reph target or -1
-
position
public boolean position(GlyphSequence gs, String script, String language, int fontSize, GlyphTable.UseSpec[] usa, int[] widths, int[][] adjustments, ScriptContextTester sct) Perform positioning processing using a specific set of ordered glyph table use specifications.- Overrides:
position
in classScriptProcessor
- Parameters:
gs
- an input glyph sequencescript
- a script identifierlanguage
- a language identifierfontSize
- size in device unitsusa
- an ordered array of glyph table use specswidths
- array of default advancements for each glyph in fontadjustments
- 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 sequencesct
- a script specific context tester (or null)- Returns:
- true if some adjustment is not zero; otherwise, false
-