Class Type2CharStringParser


  • public class Type2CharStringParser
    extends java.lang.Object
    This class represents a converter for a mapping into a Type2-sequence.
    • Field Detail

      • CALLSUBR

        private static final int CALLSUBR
      • CALLGSUBR

        private static final int CALLGSUBR
      • HINTMASK

        private static final int HINTMASK
      • CNTRMASK

        private static final int CNTRMASK
      • fontName

        private final java.lang.String fontName
    • Constructor Detail

      • Type2CharStringParser

        public Type2CharStringParser​(java.lang.String fontName)
        Constructs a new Type1CharStringParser object for a Type 1-equivalent font.
        Parameters:
        fontName - font name
    • Method Detail

      • parse

        public java.util.List<java.lang.Object> parse​(byte[] bytes,
                                                      byte[][] globalSubrIndex,
                                                      byte[][] localSubrIndex,
                                                      java.lang.String glyphName)
                                               throws java.io.IOException
        The given byte array will be parsed and converted to a Type2 sequence.
        Parameters:
        bytes - the given mapping as byte array
        globalSubrIndex - array containing all global subroutines
        localSubrIndex - array containing all local subroutines
        glyphName - the name of the current glyph
        Returns:
        the Type2 sequence
        Throws:
        java.io.IOException - if an error occurs during reading
      • parseSequence

        private void parseSequence​(byte[] bytes,
                                   byte[][] globalSubrIndex,
                                   byte[][] localSubrIndex,
                                   Type2CharStringParser.GlyphData glyphData)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • processCallSubr

        private void processCallSubr​(byte[][] globalSubrIndex,
                                     byte[][] localSubrIndex,
                                     Type2CharStringParser.GlyphData glyphData)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • processCallGSubr

        private void processCallGSubr​(byte[][] globalSubrIndex,
                                      byte[][] localSubrIndex,
                                      Type2CharStringParser.GlyphData glyphData)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • processSubr

        private void processSubr​(byte[][] globalSubrIndex,
                                 byte[][] localSubrIndex,
                                 byte[] subrBytes,
                                 Type2CharStringParser.GlyphData glyphData)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • calculateSubrNumber

        private int calculateSubrNumber​(int operand,
                                        int subrIndexlength)
      • readNumber

        private java.lang.Number readNumber​(int b0,
                                            DataInput input)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • getMaskLength

        private int getMaskLength​(int hstemCount,
                                  int vstemCount)
      • countNumbers

        private int countNumbers​(java.util.List<java.lang.Object> sequence)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object