Class Type3Font


  • public class Type3Font
    extends FontProgram
    FontProgram class for Type 3 font. Contains map of Type3Glyph. Type3Glyphs belong to a particular pdf document. Note, an instance of Type3Font can not be reused for multiple pdf documents.
    • Field Detail

      • type3Glyphs

        private final java.util.Map<java.lang.Integer,​Type3Glyph> type3Glyphs
      • type3GlyphsWithoutUnicode

        private final java.util.Map<java.lang.Integer,​Type3Glyph> type3GlyphsWithoutUnicode
        Stores glyphs without associated unicode.
      • colorized

        private boolean colorized
      • flags

        private int flags
    • Constructor Detail

      • Type3Font

        Type3Font​(boolean colorized)
        Creates a Type 3 font program.
        Parameters:
        colorized - defines whether the glyph color is specified in the glyph descriptions in the font.
    • Method Detail

      • getType3Glyph

        public Type3Glyph getType3Glyph​(int unicode)
        Returns a glyph by unicode.
        Parameters:
        unicode - glyph unicode
        Returns:
        Type3Glyph glyph, or null if this font does not contain glyph for the unicode
      • getType3GlyphByCode

        public Type3Glyph getType3GlyphByCode​(int code)
        Returns a glyph by its code. These glyphs may not have unicode.
        Parameters:
        code - glyph code
        Returns:
        Type3Glyph glyph, or null if this font does not contain glyph for the code
      • isColorized

        public boolean isColorized()
      • getKerning

        public int getKerning​(Glyph glyph1,
                              Glyph glyph2)
        Description copied from class: FontProgram
        Gets the kerning between two glyphs.
        Specified by:
        getKerning in class FontProgram
        Parameters:
        glyph1 - the first glyph
        glyph2 - the second glyph
        Returns:
        the kerning to be applied
      • getNumberOfGlyphs

        public int getNumberOfGlyphs()
        Returns number of glyphs for this font. Its also count glyphs without unicode. See type3GlyphsWithoutUnicode.
        Returns:
        int number off all glyphs
      • setFontName

        protected void setFontName​(java.lang.String fontName)
        Sets the PostScript name of the font.

        If full name is null, it will be set as well.

        Overrides:
        setFontName in class FontProgram
        Parameters:
        fontName - the PostScript name of the font, shall not be null or empty.
      • setFontFamily

        protected void setFontFamily​(java.lang.String fontFamily)
        Sets a preferred font family name.
        Overrides:
        setFontFamily in class FontProgram
        Parameters:
        fontFamily - a preferred font family name.
      • setFontWeight

        protected void setFontWeight​(int fontWeight)
        Sets font weight.
        Overrides:
        setFontWeight in class FontProgram
        Parameters:
        fontWeight - integer form 100 to 900. See FontWeights.
      • setFontStretch

        protected void setFontStretch​(java.lang.String fontWidth)
        Sets font width in css notation (font-stretch property)
        Overrides:
        setFontStretch in class FontProgram
        Parameters:
        fontWidth - FontStretches.
      • setItalicAngle

        protected void setItalicAngle​(int italicAngle)
        Sets the PostScript italic angle.

        Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward).

        Overrides:
        setItalicAngle in class FontProgram
        Parameters:
        italicAngle - in counter-clockwise degrees from the vertical
      • addGlyph

        void addGlyph​(int code,
                      int unicode,
                      int width,
                      int[] bbox,
                      Type3Glyph type3Glyph)
      • removeGlyphFromMappings

        private void removeGlyphFromMappings​(int glyphCode)
      • recalculateAverageWidth

        private void recalculateAverageWidth()