Class CFFFontProgram

java.lang.Object
org.verapdf.pd.font.cff.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
  • Field Details

  • Constructor Details

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

    • 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.
    • getCIDList

      public List<Integer> getCIDList()
      Specified by:
      getCIDList in interface FontProgram
    • getFont

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

      public ASFileStreamCloser getFontProgramResource()
      Specified by:
      getFontProgramResource in interface FontProgram
      Returns:
      file stream closer that handles the closing of font program stream or null if stream is memory stream.
    • getWeight

      public String getWeight()
      Specified by:
      getWeight in interface FontProgram
    • getAscent

      public Double getAscent()
      Specified by:
      getAscent in interface FontProgram
    • getDescent

      public Double getDescent()
      Specified by:
      getDescent in interface FontProgram
    • readCard8

      protected int readCard8() throws IOException
      Throws:
      IOException
    • readCard16

      protected int readCard16() throws IOException
      Throws:
      IOException
    • readIndex

      protected CFFIndex readIndex() throws IOException
      Throws:
      IOException
    • readHeader

      protected void readHeader() throws IOException
      Throws:
      IOException
    • readNumber

      protected CFFNumber readNumber() throws IOException
      Throws:
      IOException
    • getStringBySID

      protected String getStringBySID(int sid) throws IOException
      Throws:
      IOException