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
    • type2sequence

      private final List<Object> type2sequence
    • 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.
    • getType2Sequence

      public List<Object> getType2Sequence()
      Returns the Type 2 charstring sequence.
    • 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
    • handleCommand

      private List<Number> handleCommand(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()
    • drawAlternatingLine

      private void drawAlternatingLine(List<Number> numbers, boolean horizontal)
    • drawAlternatingCurve

      private void drawAlternatingCurve(List<Number> numbers, boolean horizontal)
    • drawCurve

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

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

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

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