Class PDTrueTypeFont

    • Constructor Detail

      • PDTrueTypeFont

        public PDTrueTypeFont​(COSDictionary fontDictionary)
                       throws IOException
        Creates a new TrueType font from a Font dictionary.
        Parameters:
        fontDictionary - The font dictionary according to the PDF specification.
        Throws:
        IOException
    • Method Detail

      • load

        public static PDTrueTypeFont load​(PDDocument doc,
                                          File file,
                                          Encoding encoding)
                                   throws IOException
        Loads a TTF to be embedded into a document as a simple font.

        Note: Simple fonts only support 256 characters. For Unicode support, use PDType0Font.load(PDDocument, File) instead.

        Parameters:
        doc - The PDF document that will hold the embedded font.
        file - A TTF file.
        encoding - The PostScript encoding vector to be used for embedding.
        Returns:
        a PDTrueTypeFont instance.
        Throws:
        IOException - If there is an error loading the data.
      • load

        public static PDTrueTypeFont load​(PDDocument doc,
                                          InputStream input,
                                          Encoding encoding)
                                   throws IOException
        Loads a TTF to be embedded into a document as a simple font.

        Note: Simple fonts only support 256 characters. For Unicode support, use PDType0Font.load(PDDocument, InputStream) instead.

        Parameters:
        doc - The PDF document that will hold the embedded font.
        input - A TTF file stream
        encoding - The PostScript encoding vector to be used for embedding.
        Returns:
        a PDTrueTypeFont instance.
        Throws:
        IOException - If there is an error loading the data.
      • getBaseFont

        public final String getBaseFont()
        Returns the PostScript name of the font.
      • readCode

        public int readCode​(InputStream in)
                     throws IOException
        Description copied from class: PDFont
        Reads a character code from a content stream string. Codes may be up to 4 bytes long.
        Specified by:
        readCode in class PDFont
        Parameters:
        in - string stream
        Returns:
        character code
        Throws:
        IOException - if the CMap or stream cannot be read
      • getName

        public String getName()
        Description copied from interface: PDFontLike
        Returns the name of this font, either the PostScript "BaseName" or the Type 3 "Name".
        Specified by:
        getName in interface PDFontLike
        Specified by:
        getName in class PDFont
      • isDamaged

        public boolean isDamaged()
        Description copied from interface: PDFontLike
        Returns true if the embedded font file is damaged.
        Specified by:
        isDamaged in interface PDFontLike
        Specified by:
        isDamaged in class PDFont
      • getTrueTypeFont

        public TrueTypeFont getTrueTypeFont()
        Returns the embedded or substituted TrueType font.
      • getWidthFromFont

        public float getWidthFromFont​(int code)
                               throws IOException
        Description copied from interface: PDFontLike
        Returns the width of a glyph in the embedded font file.
        Specified by:
        getWidthFromFont in interface PDFontLike
        Specified by:
        getWidthFromFont in class PDFont
        Parameters:
        code - character code
        Returns:
        width in glyph space
        Throws:
        IOException - if the font could not be read
      • getHeight

        public float getHeight​(int code)
                        throws IOException
        Description copied from interface: PDFontLike
        Returns the height of the given character, in glyph space. This can be expensive to calculate. Results are only approximate.
        Specified by:
        getHeight in interface PDFontLike
        Specified by:
        getHeight in class PDFont
        Parameters:
        code - character code
        Throws:
        IOException
      • encode

        protected byte[] encode​(int unicode)
                         throws IOException
        Description copied from class: PDFont
        Encodes the given Unicode code point for use in a PDF content stream. Content streams use a multi-byte encoding with 1 to 4 bytes.

        This method is called when embedding text in PDFs and when filling in fields.

        Specified by:
        encode in class PDFont
        Parameters:
        unicode - Unicode code point.
        Returns:
        Array of 1 to 4 PDF content stream bytes.
        Throws:
        IOException - If the text could not be encoded.
      • isEmbedded

        public boolean isEmbedded()
        Description copied from interface: PDFontLike
        Returns true if the font file is embedded in the PDF.
        Specified by:
        isEmbedded in interface PDFontLike
        Specified by:
        isEmbedded in class PDFont
      • getPath

        public android.graphics.Path getPath​(int code)
                                      throws IOException
        Description copied from interface: PDVectorFont
        Returns the glyph path for the given character code.
        Specified by:
        getPath in interface PDVectorFont
        Parameters:
        code - character code
        Throws:
        IOException - if the font could not be read
      • getPath

        public android.graphics.Path getPath​(String name)
                                      throws IOException
        Description copied from class: PDSimpleFont
        Returns the path for the character with the given name. For some fonts, GIDs may be used instead of names when calling this method.
        Specified by:
        getPath in class PDSimpleFont
        Returns:
        glyph path
        Throws:
        IOException - if the path could not be read
      • hasGlyph

        public boolean hasGlyph​(int code)
                         throws IOException
        Description copied from interface: PDVectorFont
        Returns true if this font contains a glyph for the given character code.
        Specified by:
        hasGlyph in interface PDVectorFont
        Parameters:
        code - character code
        Throws:
        IOException
      • codeToGID

        public int codeToGID​(int code)
                      throws IOException
        Returns the GID for the given character code.
        Parameters:
        code - character code
        Returns:
        GID (glyph index)
        Throws:
        IOException