Class CFFFontProgram

  • All Implemented Interfaces:
    FontProgram

    public class CFFFontProgram
    extends Object
    implements FontProgram
    This class starts parsing for all inner CFF fonts and contains fonts parsed.
    Author:
    Sergey Shemyakov
    • Constructor Detail

      • CFFFontProgram

        public CFFFontProgram​(ASInputStream stream,
                              CMap cMap,
                              boolean isSubset)
                       throws IOException
        Constructor from stream.
        Parameters:
        stream - is stream with CFF program.
        Throws:
        IOException - if creation of @{link SeekableStream} fails.
    • 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.
      • getWidth

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

        public float getWidth​(String glyphName)
        Returns width of glyph for given glyph name.
        Specified by:
        getWidth in interface FontProgram
        Parameters:
        glyphName - is name for glyph.
        Returns:
        width of corresponding glyph or -1 if glyph is not found.
      • 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.
      • isCIDFont

        public boolean isCIDFont()
        Returns:
        true if this font is CFF CID font.
      • 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.
      • 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.
      • 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.
      • 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.
      • getFont

        public FontProgram getFont()
        Returns:
        CID font or Type1 font that is presented by CFF program.