Class Type2CharString

java.lang.Object
org.apache.fontbox.cff.Type1CharString
org.apache.fontbox.cff.Type2CharString
Direct Known Subclasses:
CIDKeyedType2CharString

public class Type2CharString extends Type1CharString
Represents a Type 2 CharString by converting it into an equivalent Type 1 CharString.
  • Field Details

    • defWidthX

      private float defWidthX
    • nominalWidthX

      private float nominalWidthX
    • pathCount

      private int pathCount
    • gid

      private final int gid
  • Constructor Details

    • Type2CharString

      public Type2CharString(Type1CharStringReader font, String fontName, String glyphName, int gid, List<Object> sequence, int defaultWidthX, int nomWidthX)
      Constructor.
      Parameters:
      font - Parent CFF font
      fontName - font name
      glyphName - glyph name (or CID as hex string)
      gid - GID
      sequence - Type 2 char string sequence
      defaultWidthX - default width
      nomWidthX - nominal width
  • Method Details

    • getGID

      public int getGID()
      Return the GID (glyph id) of this charstring.
      Returns:
      the GID of this charstring
    • convertType1ToType2

      private void convertType1ToType2(List<Object> sequence)
      Converts a sequence of Type 2 commands into a sequence of Type 1 commands.
      Parameters:
      sequence - the Type 2 char string sequence
    • convertType2Command

      private List<Number> convertType2Command(List<Number> numbers, CharStringCommand command)
    • clearStack

      private List<Number> clearStack(List<Number> numbers, boolean flag)
    • expandStemHints

      private void expandStemHints(List<Number> numbers, boolean horizontal)
      Parameters:
      numbers -
      horizontal -
    • markPath

      private void markPath()
    • closeCharString2Path

      private void closeCharString2Path()
    • addAlternatingLine

      private void addAlternatingLine(List<Number> numbers, boolean horizontal)
    • addAlternatingCurve

      private void addAlternatingCurve(List<Number> numbers, boolean horizontal)
    • addCurve

      private void addCurve(List<Number> numbers, boolean horizontal)
    • addCommandList

      private void addCommandList(List<List<Number>> numbers, CharStringCommand command)
    • split

      private static <E> List<List<E>> split(List<E> list, int size)