ArabicScriptProcessor (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.complexscripts.scripts

## Class ArabicScriptProcessor

- java.lang.Object
- - org.apache.fop.complexscripts.scripts.ScriptProcessor
  - - org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
    - - org.apache.fop.complexscripts.scripts.ArabicScriptProcessor

-     public class ArabicScriptProcessor
      extends DefaultScriptProcessor

  The `ArabicScriptProcessor` class implements a script processor for performing glyph substitution and positioning operations on content associated with the Arabic script.

  This work was originally authored by Glenn Adams (gadams@apache.org).

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ScriptContextTester` | `getPositioningContextTester()` Obtain script specific positioning context tester.
    `String[]` | `getPositioningFeatures()` Obtain script specific required positioning features.
    `ScriptContextTester` | `getSubstitutionContextTester()` Obtain script specific substitution context tester.
    `String[]` | `getSubstitutionFeatures()` Obtain script specific required substitution features.
    `GlyphSequence` | `reorderCombiningMarks(GlyphDefinitionTable gdef, GlyphSequence gs, int[] widths, int[][] gpa, String script, String language)` Reorder combining marks in glyph sequence so that they precede (within the sequence) the base character to which they are applied.

    - ### Methods inherited from class org.apache.fop.complexscripts.scripts.DefaultScriptProcessor

      `isReorderedMark`

    - ### Methods inherited from class org.apache.fop.complexscripts.scripts.ScriptProcessor

      `assembleLookups, getInstance, getOptionalPositioningFeatures, getOptionalSubstitutionFeatures, getScript, position, position, preProcess, substitute, substitute`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getSubstitutionFeatures

          public String[] getSubstitutionFeatures()

      Obtain script specific required substitution features.
      Overrides:
        `getSubstitutionFeatures` in class `DefaultScriptProcessor`
      Returns:
        array of suppported substitution features or null

    - #### getSubstitutionContextTester

          public ScriptContextTester getSubstitutionContextTester()

      Obtain script specific substitution context tester.
      Overrides:
        `getSubstitutionContextTester` in class `DefaultScriptProcessor`
      Returns:
        substitution context tester or null

    - #### getPositioningFeatures

          public String[] getPositioningFeatures()

      Obtain script specific required positioning features.
      Overrides:
        `getPositioningFeatures` in class `DefaultScriptProcessor`
      Returns:
        array of suppported positioning features or null

    - #### getPositioningContextTester

          public ScriptContextTester getPositioningContextTester()

      Obtain script specific positioning context tester.
      Overrides:
        `getPositioningContextTester` in class `DefaultScriptProcessor`
      Returns:
        positioning context tester or null

    - #### reorderCombiningMarks

          public GlyphSequence reorderCombiningMarks(GlyphDefinitionTable gdef,
                                                     GlyphSequence gs,
                                                     int[] widths,
                                                     int[][] gpa,
                                                     String script,
                                                     String language)

      Reorder combining marks in glyph sequence so that they precede (within the sequence) the base character to which they are applied. N.B. In the case of RTL segments, marks are not reordered by this, method since when the segment is reversed by BIDI processing, marks are automatically reordered to precede their base glyph.
      Overrides:
        `reorderCombiningMarks` in class `DefaultScriptProcessor`
      Parameters:
        `gdef` - the glyph definition table that applies
        `gs` - an input glyph sequence
        `widths` - associated unscaled advance widths (also reordered)
        `gpa` - associated glyph position adjustments (also reordered)
        `script` - a script identifier
        `language` - a language identifier
      Returns:
        the reordered (output) glyph sequence

Copyright © 2025 Apache Software Foundation. All rights reserved.