Class TrueTypeCollection

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class TrueTypeCollection
    extends java.lang.Object
    implements java.io.Closeable
    A TrueType Collection, now more properly known as a "Font Collection" as it may contain either TrueType or OpenType fonts.
    • Field Detail

      • numFonts

        private final int numFonts
      • fontOffsets

        private final long[] fontOffsets
    • Constructor Detail

      • TrueTypeCollection

        public TrueTypeCollection​(java.io.File file)
                           throws java.io.IOException
        Creates a new TrueTypeCollection from a .ttc file.
        Parameters:
        file - The TTC file.
        Throws:
        java.io.IOException - If the font could not be parsed.
      • TrueTypeCollection

        public TrueTypeCollection​(java.io.InputStream stream)
                           throws java.io.IOException
        Creates a new TrueTypeCollection from a .ttc input stream.
        Parameters:
        stream - A TTC input stream.
        Throws:
        java.io.IOException - If the font could not be parsed.
      • TrueTypeCollection

        private TrueTypeCollection​(TTFDataStream stream)
                            throws java.io.IOException
        Creates a new TrueTypeCollection from a RandomAccessRead.
        Parameters:
        randomAccessRead -
        closeAfterReading - true to close randomAccessRead
        buffered - true to use RandomAccessReadDataStream, false to use RandomAccessReadUnbufferedDataStream
        Throws:
        java.io.IOException - If the font could not be parsed.
    • Method Detail

      • createBufferedDataStream

        private static TTFDataStream createBufferedDataStream​(RandomAccessRead randomAccessRead,
                                                              boolean closeAfterReading)
                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • processAllFonts

        public void processAllFonts​(TrueTypeCollection.TrueTypeFontProcessor trueTypeFontProcessor)
                             throws java.io.IOException
        Run the callback for each TT font in the collection.
        Parameters:
        trueTypeFontProcessor - the object with the callback method.
        Throws:
        java.io.IOException - if something went wrong when parsing any font or calling the TrueTypeFontProcessor
      • processAllFontHeaders

        public static void processAllFontHeaders​(java.io.File ttcFile,
                                                 TrueTypeCollection.TrueTypeFontHeadersProcessor trueTypeFontProcessor)
                                          throws java.io.IOException
        Run the callback for each TT font in the collection.
        Parameters:
        trueTypeFontProcessor - the object with the callback method.
        Throws:
        java.io.IOException - if something went wrong when parsing any font
      • getFontAtIndex

        private TrueTypeFont getFontAtIndex​(int idx)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • createFontParserAtIndexAndSeek

        private TTFParser createFontParserAtIndexAndSeek​(int idx)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getFontByName

        public TrueTypeFont getFontByName​(java.lang.String name)
                                   throws java.io.IOException
        Get a TT font from a collection.
        Parameters:
        name - The postscript name of the font.
        Returns:
        The found font, nor null if none is found.
        Throws:
        java.io.IOException - if there is an error reading the font data
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException