Class PDSimpleFont

    • Field Detail

      • LOG

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

        private java.lang.Boolean isSymbolic
      • noUnicode

        private final java.util.Set<java.lang.Integer> noUnicode
    • Constructor Detail

      • PDSimpleFont

        PDSimpleFont()
        Constructor for embedding.
      • PDSimpleFont

        PDSimpleFont​(COSDictionary fontDictionary)
        Constructor.
        Parameters:
        fontDictionary - Font dictionary.
    • Method Detail

      • readEncoding

        protected void readEncoding()
                             throws java.io.IOException
        Reads the Encoding from the Font dictionary or the embedded or substituted font file. Must be called at the end of any subclass constructors.
        Throws:
        java.io.IOException - if the font file could not be read
      • readEncodingFromFont

        protected abstract Encoding readEncodingFromFont()
                                                  throws java.io.IOException
        Called by readEncoding() if the encoding needs to be extracted from the font file.
        Returns:
        encoding of the font
        Throws:
        java.io.IOException - if the font file could not be read.
      • getEncoding

        public Encoding getEncoding()
        Returns the Encoding.
        Returns:
        encoding
      • getGlyphList

        public GlyphList getGlyphList()
        Returns the glyphlist.
        Returns:
        the glyphlist
      • isSymbolic

        public final boolean isSymbolic()
        Returns true if the font is a symbolic (that is, it does not use the Adobe Standard Roman character set).
        Returns:
        true if the font is a symbolic
      • isFontSymbolic

        protected java.lang.Boolean isFontSymbolic()
        Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.
        Returns:
        true if isSymbolic
      • getSymbolicFlag

        protected final java.lang.Boolean getSymbolicFlag()
        Returns the value of the symbolic flag, allowing for the fact that the result may be indeterminate.
        Returns:
        the value of the isSymbolic flag form the font descriptor
      • toUnicode

        public java.lang.String toUnicode​(int code)
        Description copied from class: PDFont
        Returns the Unicode character sequence which corresponds to the given character code.
        Overrides:
        toUnicode in class PDFont
        Parameters:
        code - character code
        Returns:
        Unicode character(s)
      • toUnicode

        public java.lang.String toUnicode​(int code,
                                          GlyphList customGlyphList)
        Description copied from class: PDFont
        Returns the Unicode character sequence which corresponds to the given character code.
        Overrides:
        toUnicode in class PDFont
        Parameters:
        code - character code
        customGlyphList - a custom glyph list to use instead of the Adobe Glyph List
        Returns:
        Unicode character(s)
      • isVertical

        public boolean isVertical()
        Description copied from class: PDFont
        Returns true if the font uses vertical writing mode.
        Specified by:
        isVertical in class PDFont
        Returns:
        true if the font uses vertical writing mode
      • getStandard14Width

        protected final float getStandard14Width​(int code)
        Description copied from class: PDFont
        Returns the glyph width from the AFM if this is a Standard 14 font.
        Specified by:
        getStandard14Width in class PDFont
        Parameters:
        code - character code
        Returns:
        width in 1/1000 text space
      • isStandard14

        public boolean isStandard14()
        Description copied from class: PDFont
        Returns true if this font is one of the "Standard 14" fonts and receives special handling.
        Overrides:
        isStandard14 in class PDFont
        Returns:
        true if this font is one of the "Standard 14" fonts
      • isNonZeroBoundingBox

        protected boolean isNonZeroBoundingBox​(PDRectangle bbox)
      • getPath

        public abstract java.awt.geom.GeneralPath getPath​(java.lang.String name)
                                                   throws java.io.IOException
        Returns the path for the character with the given name. For some fonts, GIDs may be used instead of names when calling this method. *
        Parameters:
        name - glyph name
        Returns:
        glyph path of the character with the given name
        Throws:
        java.io.IOException - if the path could not be read
      • hasGlyph

        public abstract boolean hasGlyph​(java.lang.String name)
                                  throws java.io.IOException
        Returns true if the font contains the character with the given name.
        Parameters:
        name - glyph name
        Returns:
        true if the font contains the character with the given name
        Throws:
        java.io.IOException - if the path could not be read
      • getFontBoxFont

        public abstract FontBoxFont getFontBoxFont()
        Returns the embedded or system font used for rendering. This is never null.
        Returns:
        the embedded or system font used for rendering
      • addToSubset

        public void addToSubset​(int codePoint)
        Description copied from class: PDFont
        Adds the given Unicode point to the subset.
        Specified by:
        addToSubset in class PDFont
        Parameters:
        codePoint - Unicode code point
      • subset

        public void subset()
                    throws java.io.IOException
        Description copied from class: PDFont
        Replaces this font with a subset containing only the given Unicode characters.
        Specified by:
        subset in class PDFont
        Throws:
        java.io.IOException - if the subset could not be written
      • willBeSubset

        public boolean willBeSubset()
        Description copied from class: PDFont
        Returns true if this font will be subset when embedded.
        Specified by:
        willBeSubset in class PDFont
        Returns:
        true if this font will be subset when embedded
      • hasExplicitWidth

        public boolean hasExplicitWidth​(int code)
                                 throws java.io.IOException
        Description copied from interface: PDFontLike
        Returns true if the Font dictionary specifies an explicit width for the given glyph. This includes Width, W but not default widths entries.
        Parameters:
        code - character code
        Returns:
        true if the Font dictionary specifies an explicit width for the given glyph
        Throws:
        java.io.IOException - if the font could not be read