Class FontDetails


  • class FontDetails
    extends java.lang.Object
    Each font in the document will have an instance of this class where the characters used will be represented.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) BaseFont baseFont
      The font
      (package private) CJKFont cjkFont
      The font if it's an instance of CJKFont
      (package private) IntHashtable cjkTag
      IntHashtable with CIDs of CJK glyphs that are used in the text.
      (package private) PdfName fontName
      The font name that appears in the document body stream
      (package private) int fontType
      The font type
      (package private) PdfIndirectReference indirectReference
      The indirect reference to this font
      (package private) java.util.HashMap<java.lang.Integer,​int[]> longTag
      The map used with double byte encodings.
      (package private) byte[] shortTag
      The array used with single byte encodings
      protected boolean subset
      Indicates if only a subset of the glyphs and widths for that particular encoding should be included in the document.
      (package private) boolean symbolic
      true if the font is symbolic
      (package private) TrueTypeFontUnicode ttu
      The font if it's an instance of TrueTypeFontUnicode
    • Field Detail

      • fontName

        PdfName fontName
        The font name that appears in the document body stream
      • cjkFont

        CJKFont cjkFont
        The font if it's an instance of CJKFont
      • shortTag

        byte[] shortTag
        The array used with single byte encodings
      • longTag

        java.util.HashMap<java.lang.Integer,​int[]> longTag
        The map used with double byte encodings. The key is Integer(glyph) and the value is int[]{glyph, width, Unicode code}
      • cjkTag

        IntHashtable cjkTag
        IntHashtable with CIDs of CJK glyphs that are used in the text.
      • fontType

        int fontType
        The font type
      • symbolic

        boolean symbolic
        true if the font is symbolic
      • subset

        protected boolean subset
        Indicates if only a subset of the glyphs and widths for that particular encoding should be included in the document.
    • Constructor Detail

      • FontDetails

        FontDetails​(PdfName fontName,
                    PdfIndirectReference indirectReference,
                    BaseFont baseFont)
        Each font used in a document has an instance of this class. This class stores the characters used in the document and other specifics unique to the current working document.
        Parameters:
        fontName - the font name
        indirectReference - the indirect reference to the font
        baseFont - the BaseFont
    • Method Detail

      • getIndirectReference

        PdfIndirectReference getIndirectReference()
        Gets the indirect reference to this font.
        Returns:
        the indirect reference to this font
      • getFontName

        PdfName getFontName()
        Gets the font name as it appears in the document body.
        Returns:
        the font name
      • getBaseFont

        BaseFont getBaseFont()
        Gets the BaseFont of this font.
        Returns:
        the BaseFont of this font
      • convertToBytesGid

        java.lang.Object[] convertToBytesGid​(java.lang.String gids)
      • convertToBytes

        byte[] convertToBytes​(java.lang.String text)
        Converts the text into bytes to be placed in the document. The conversion is done according to the font and the encoding and the characters used are stored.
        Parameters:
        text - the text to convert
        Returns:
        the conversion
      • canApplyGlyphSubstitution

        private boolean canApplyGlyphSubstitution()
      • convertToBytesAfterGlyphSubstitution

        private byte[] convertToBytesAfterGlyphSubstitution​(java.lang.String text)
                                                     throws java.io.UnsupportedEncodingException
        Throws:
        java.io.UnsupportedEncodingException
      • writeFont

        public void writeFont​(PdfWriter writer)
        Writes the font definition to the document.
        Parameters:
        writer - the PdfWriter of this document
      • isSubset

        public boolean isSubset()
        Indicates if all the glyphs and widths for that particular encoding should be included in the document.
        Returns:
        false to include all the glyphs and widths.
      • setSubset

        public void setSubset​(boolean subset)
        Indicates if all the glyphs and widths for that particular encoding should be included in the document. Set to false to include all.
        Parameters:
        subset - new value of property subset