Class CFFType1FontProgram

  • All Implemented Interfaces:
    FontProgram

    public class CFFType1FontProgram
    extends Object
    implements FontProgram
    Instance of this class represent a Type1 font from FontSet of CFF file.
    Author:
    Sergey Shemyakov
    • Field Detail

      • attemptedParsing

        protected boolean attemptedParsing
      • successfullyParsed

        protected boolean successfullyParsed
      • DEFAULT_FONT_MATRIX

        protected static final float[] DEFAULT_FONT_MATRIX
      • globalSubrs

        protected CFFIndex globalSubrs
      • isSubset

        protected boolean isSubset
      • privateDictOffset

        protected long privateDictOffset
      • privateDictSize

        protected long privateDictSize
      • topDictBeginOffset

        protected long topDictBeginOffset
      • topDictEndOffset

        protected long topDictEndOffset
      • fontMatrix

        protected float[] fontMatrix
      • charStringsOffset

        protected long charStringsOffset
      • charSetOffset

        protected long charSetOffset
      • charStringType

        protected int charStringType
      • weight

        protected String weight
      • nGlyphs

        protected int nGlyphs
      • charStrings

        protected CFFIndex charStrings
      • defaultWidthX

        protected int defaultWidthX
      • nominalWidthX

        protected int nominalWidthX
      • subrsOffset

        protected long subrsOffset
      • definedNames

        protected CFFIndex definedNames
    • Method Detail

      • parseFont

        public void parseFont()
                       throws IOException
        This method does parsing of font, after it all the data needed should be extracted.
        Specified by:
        parseFont in interface FontProgram
        Throws:
        IOException - if error in font parsing occurs.
      • readTopDictOneByteOps

        protected void readTopDictOneByteOps​(int lastRead)
      • getGlyphName

        public String getGlyphName​(int code)
        Description copied from interface: FontProgram
        Returns glyph name for glyph with given code.
        Specified by:
        getGlyphName in interface FontProgram
        Parameters:
        code - is code of glyph.
        Returns:
        glyph name.
      • getWidth

        public float getWidth​(int charCode)
        Returns width of glyph for given character code.
        Specified by:
        getWidth in interface FontProgram
        Parameters:
        charCode - is code for glyph.
        Returns:
        width of corresponding glyph or -1 if glyph is not found.
      • getWidthFromGID

        public float getWidthFromGID​(int gid)
      • containsGID

        public boolean containsGID​(int gid)
      • containsGlyph

        public boolean containsGlyph​(String glyphName)
        Description copied from interface: FontProgram
        Checks if this font program has glyph for given glyph name.
        Specified by:
        containsGlyph in interface FontProgram
        Parameters:
        glyphName - is the name of glyph.
        Returns:
        true if this font program has glyph for given name.
      • getWidth

        public float getWidth​(String charName)
        Returns width of glyph for given glyph name.
        Specified by:
        getWidth in interface FontProgram
        Parameters:
        charName - is name for glyph.
        Returns:
        width of corresponding glyph or -1 if glyph is not found.
      • containsCode

        public boolean containsCode​(int code)
        Checks if font contains character with given code.
        Specified by:
        containsCode in interface FontProgram
        Parameters:
        code - is character code.
        Returns:
        true if font contains character with given code.
      • containsCID

        public boolean containsCID​(int cid)
        Description copied from interface: FontProgram
        Method works only for fonts where cid notation is used.
        Specified by:
        containsCID in interface FontProgram
        Returns:
        true if font a is cid font and contains given cid.
      • getEncoding

        public String[] getEncoding()
      • getCharSet

        public Set<String> getCharSet()
        Returns:
        list of names for all glyphs in this font.
      • isAttemptedParsing

        public boolean isAttemptedParsing()
        Specified by:
        isAttemptedParsing in interface FontProgram
        Returns:
        true if font parsing has been attempted.
      • isSuccessfulParsing

        public boolean isSuccessfulParsing()
        Specified by:
        isSuccessfulParsing in interface FontProgram
        Returns:
        true if font was successfully parsed.
      • getCFFType1

        public static CFFType1FontProgram getCFFType1​(FontProgram fontProgram)
        Gets CFF Type 1 font program for given font program (CFF font program with inner CFF Type 1 or CFF Type 1).
        Returns:
        CFF Type 1 font program or null if no CFF Type 1 font program can be obtained.
      • readTopDictTwoByteOps

        protected void readTopDictTwoByteOps​(int lastRead)
                                      throws IOException
        Throws:
        IOException
      • getNGlyphs

        public int getNGlyphs()
        Returns:
        amount of glyphs in the font.
      • getWeight

        public String getWeight()