Class TTFParser

  • Direct Known Subclasses:
    OTFParser

    public class TTFParser
    extends java.lang.Object
    TrueType font file parser.
    • Field Detail

      • LOG

        private static final org.apache.commons.logging.Log LOG
      • isEmbedded

        private boolean isEmbedded
    • Constructor Detail

      • TTFParser

        public TTFParser()
        Constructor.
      • TTFParser

        public TTFParser​(boolean isEmbedded)
        Constructor.
        Parameters:
        isEmbedded - true if the font is embedded in PDF
    • Method Detail

      • parse

        public TrueTypeFont parse​(RandomAccessRead randomAccessRead)
                           throws java.io.IOException
        Parse a RandomAccessRead and return a TrueType font.
        Parameters:
        randomAccessRead - The RandomAccessREad to be read from. It will be closed before returning.
        Returns:
        A TrueType font.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • parseEmbedded

        public TrueTypeFont parseEmbedded​(java.io.InputStream inputStream)
                                   throws java.io.IOException
        Parse an input stream and return a TrueType font that is to be embedded.
        Parameters:
        inputStream - The TTF data stream to parse from. It will be closed before returning.
        Returns:
        A TrueType font.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • parseTableHeaders

        public FontHeaders parseTableHeaders​(RandomAccessRead randomAccessRead)
                                      throws java.io.IOException
        Parse a RandomAccessRead and return a TrueType font.
        Parameters:
        randomAccessRead - The RandomAccessREad to be read from. It will be closed before returning.
        Returns:
        TrueType font headers.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • createFontWithTables

        private TrueTypeFont createFontWithTables​(TTFDataStream raf)
                                           throws java.io.IOException
        Parse a file and get a true type font.
        Parameters:
        raf - The TTF file.
        Returns:
        A TrueType font.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • parseTables

        private void parseTables​(TrueTypeFont font)
                          throws java.io.IOException
        Parse all tables and check if all needed tables are present.
        Parameters:
        font - the TrueTypeFont instance holding the parsed data.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • parseTableHeaders

        FontHeaders parseTableHeaders​(TTFDataStream raf)
                               throws java.io.IOException
        Based on #parseTables(). Parse all table headers and check if all needed tables are present. This method can be optimized further by skipping unused portions inside each individual table parser
        Parameters:
        font - the TrueTypeFont instance holding the parsed data.
        Throws:
        java.io.IOException - If there is an error parsing the TrueType font.
      • allowCFF

        protected boolean allowCFF()
      • readTableDirectory

        private TTFTable readTableDirectory​(TTFDataStream raf)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • readTable

        protected TTFTable readTable​(java.lang.String tag)