Class ArabicLigaturizer

java.lang.Object
com.itextpdf.text.pdf.languages.ArabicLigaturizer
All Implemented Interfaces:
LanguageProcessor

public class ArabicLigaturizer extends Object implements LanguageProcessor
Shape arabic characters. This code was inspired by an LGPL'ed C library: Pango ( see http://www.pango.com/ ). Note that the code of this class is the original work of Paulo Soares.
Author:
Paulo Soares
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
    Digit type option: Use Arabic-Indic digits (U+0660...U+0669).
    static final int
    Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9).
    static final int
    Bit mask for digit type options.
    static final int
    Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039).
    static final int
    Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits.
    static final int
    Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC).
    static final int
    Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC).
    static final int
    Bit mask for digit shaping options.
    protected int
     
    protected int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ArabicLigaturizer(int runDirection, int options)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    arabic_shape(char[] src, int srcoffset, int srclength, char[] dest, int destoffset, int destlength, int level)
     
    static Character
     
    boolean
    Arabic is written from right to left.
    Processes a String
    static void
    processNumbers(char[] text, int offset, int length, int options)
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ar_nothing

      public static final int ar_nothing
      See Also:
    • ar_novowel

      public static final int ar_novowel
      See Also:
    • ar_composedtashkeel

      public static final int ar_composedtashkeel
      See Also:
    • ar_lig

      public static final int ar_lig
      See Also:
    • DIGITS_EN2AN

      public static final int DIGITS_EN2AN
      Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits.
      See Also:
    • DIGITS_AN2EN

      public static final int DIGITS_AN2EN
      Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039).
      See Also:
    • DIGITS_EN2AN_INIT_LR

      public static final int DIGITS_EN2AN_INIT_LR
      Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). The initial state at the start of the text is assumed to be not an Arabic, letter, so European digits at the start of the text will not change. Compare to DIGITS_ALEN2AN_INIT_AL.
      See Also:
    • DIGITS_EN2AN_INIT_AL

      public static final int DIGITS_EN2AN_INIT_AL
      Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). The initial state at the start of the text is assumed to be an Arabic, letter, so European digits at the start of the text will change. Compare to DIGITS_ALEN2AN_INT_LR.
      See Also:
    • DIGITS_MASK

      public static final int DIGITS_MASK
      Bit mask for digit shaping options.
      See Also:
    • DIGIT_TYPE_AN

      public static final int DIGIT_TYPE_AN
      Digit type option: Use Arabic-Indic digits (U+0660...U+0669).
      See Also:
    • DIGIT_TYPE_AN_EXTENDED

      public static final int DIGIT_TYPE_AN_EXTENDED
      Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9).
      See Also:
    • DIGIT_TYPE_MASK

      public static final int DIGIT_TYPE_MASK
      Bit mask for digit type options.
      See Also:
    • options

      protected int options
    • runDirection

      protected int runDirection
  • Constructor Details

    • ArabicLigaturizer

      public ArabicLigaturizer()
    • ArabicLigaturizer

      public ArabicLigaturizer(int runDirection, int options)
  • Method Details

    • arabic_shape

      public static int arabic_shape(char[] src, int srcoffset, int srclength, char[] dest, int destoffset, int destlength, int level)
    • processNumbers

      public static void processNumbers(char[] text, int offset, int length, int options)
    • getReverseMapping

      public static Character getReverseMapping(char c)
    • process

      public String process(String s)
      Description copied from interface: LanguageProcessor
      Processes a String
      Specified by:
      process in interface LanguageProcessor
      Parameters:
      s - the original String
      Returns:
      the processed String
    • isRTL

      public boolean isRTL()
      Arabic is written from right to left.
      Specified by:
      isRTL in interface LanguageProcessor
      Returns:
      true
      See Also: