Class GlyphSubstitutionTable

java.lang.Object
org.apache.fontbox.ttf.TTFTable
org.apache.fontbox.ttf.GlyphSubstitutionTable

public class GlyphSubstitutionTable extends TTFTable
A glyph substitution 'GSUB' table in a TrueType or OpenType font.
Author:
Aaron Madlon-Kay
  • Field Details

  • Method Details

    • getSubstitution

      public int getSubstitution(int gid, String[] scriptTags, List<String> enabledFeatures)
      Apply glyph substitutions to the supplied gid. The applicable substitutions are determined by the scriptTags which indicate the language of the gid, and by the list of enabledFeatures. To ensure that a single gid isn't mapped to multiple substitutions, subsequent invocations with the same gid will return the same result as the first, regardless of script or enabled features.
      Parameters:
      gid - GID
      scriptTags - Script tags applicable to the gid (see OpenTypeScript)
      enabledFeatures - list of features to apply
      Returns:
      the id of the glyph substitution
    • getUnsubstitution

      public int getUnsubstitution(int sgid)
      For a substitute-gid (obtained from getSubstitution(int, String[], List)), retrieve the original gid.

      Only gids previously substituted by this instance can be un-substituted. If you are trying to unsubstitute before you substitute, something is wrong.

      Parameters:
      sgid - Substitute GID
      Returns:
      the original gid of a substitute-gid
    • getGsubData

      public GsubData getGsubData()
      Returns a GsubData instance containing all scripts of the table.
      Returns:
      the GsubData instance representing the table
    • getGsubData

      public GsubData getGsubData(String scriptTag)
      Builds a new GsubData instance for given script tag. In contrast to neighbour getGsubData() method, this one does not try to find the first supported language and load GSUB data for it. Instead, it fetches the data for the given scriptTag (if it's supported by the font) leaving the language unspecified. It means that even after successful reading of GSUB data, the actual glyph substitution may not work if there is no corresponding GsubWorker implementation for it. Note: This method performs searching on every invocation (no results are cached)
      Parameters:
      scriptTag - a script tag for which the data is needed
      Returns:
      GSUB data for the given script or null if no such script in the font
    • getSupportedScriptTags

      public Set<String> getSupportedScriptTags()
      Returns:
      a read-only view of the script tags for which this GSUB table has records