Class StandardFont

  • All Implemented Interfaces:
    java.lang.Cloneable

    public final class StandardFont
    extends PDFFont

    A concrete subclass of PDFFont representing the standard 14 fonts guaranteed to exist in all PDF readers.

    The Times, Helvetica and Courier fonts can represent the characters from all of ISO-8859-1, ISO-8859-2, ISO-8859-6 and ISO-8859-15 as well as a few other characters, which we believe is enough to render the following languages: English, French, German, Portuguese, Italian, Spanish, Dutch, Danish, Swedish, Norwegian, Icelandic, Finnish, Polish, Croatian, Czech, Hungarian, Romanian, Slovak, Solvenian, Latvian, Lithuanian, Estonian, Turkish, Catalan, Basque, Albanian, Rhaeto-Romanic, Sorbian, Faroese, Irish, Scottish, Afrikaans, Swahili, Frisian, Galician, Indonesian/Malay and Tagalog. (This list is based on an old IETF draft here and Roman Czyborras Alphabet Soup pages, and is not definitive or even necessarily accurate). Note the Dutch IJ ligatures (U+0132 and U+0133) and the Catalan "L with dot" (U+0140) characters are missing.

    Maps showing all the characters available in these fonts are included in the "docs" directory, or you can view them here for the main fonts, the Symbol font and ZapfDingbats.

    Since:
    1.0, with additional characters added in 2.7.3
    • Field Detail

      • TIMESBOLD

        public static final int TIMESBOLD
        Represents the "Times-Bold" font
        See Also:
        Constant Field Values
      • TIMESITALIC

        public static final int TIMESITALIC
        Represents the "Times-Italic" font
        See Also:
        Constant Field Values
      • TIMESBOLDITALIC

        public static final int TIMESBOLDITALIC
        Represents the "Times-BoldItalic" font
        See Also:
        Constant Field Values
      • HELVETICA

        public static final int HELVETICA
        Represents the "Helvetica" font
        See Also:
        Constant Field Values
      • HELVETICABOLD

        public static final int HELVETICABOLD
        Represents the "Helvetica-Bold" font
        See Also:
        Constant Field Values
      • HELVETICAOBLIQUE

        public static final int HELVETICAOBLIQUE
        Represents the "Helvetica-Oblique" font
        See Also:
        Constant Field Values
      • HELVETICABOLDOBLIQUE

        public static final int HELVETICABOLDOBLIQUE
        Represents the "Helvetica-BoldOblique" font
        See Also:
        Constant Field Values
      • COURIERBOLD

        public static final int COURIERBOLD
        Represents the "Courier-Bold" font
        See Also:
        Constant Field Values
      • COURIEROBLIQUE

        public static final int COURIEROBLIQUE
        Represents the "Courier-Oblique" font
        See Also:
        Constant Field Values
      • COURIERBOLDOBLIQUE

        public static final int COURIERBOLDOBLIQUE
        Represents the "Courier-BoldOblique" font
        See Also:
        Constant Field Values
      • ZAPFDINGBATS

        public static final int ZAPFDINGBATS
        Represents the "ZapfDingbats" font. Note that the characters in the font are defined by the correct Unicode codepoints, rather than just numbers 1 to 255. See the file docs/map-zapf.pdf that came with the distribution to see what these codepoints are.
        See Also:
        Constant Field Values
    • Constructor Detail

      • StandardFont

        public StandardFont​(int fonttype)
        Create a new font of the specified type.
        Parameters:
        fonttype - which font to create - one of TIMES, COURIERBOLD etc.
    • Method Detail

      • getType

        public int getType()
        Return the type of font, as supplied to the StandardFont constructor
        Since:
        2.14.1
      • getBaseName

        public java.lang.String getBaseName()
        Description copied from class: PDFFont
        Return the Base Font Name for this font.
        Overrides:
        getBaseName in class PDFFont
      • getDefaultLeading

        public float getDefaultLeading()
        Description copied from class: PDFFont

        Get the default leading for this font - the preferred distance between two successive baselines of text. Values are a ratio of the font size, and are typically between 1 and 1.3

        Note that the values of the different spacing-between-lines methods have changed - in versions 1.0.4 and earlier this routine normally returned 1 and the spacing was set by the PDFStyle.setTextLineSpacing(float) method. Since 1.1, the values for these two methods are effectively reversed. See the relevant method comments in the PDFStyle class for more information.

        Specified by:
        getDefaultLeading in class PDFFont
      • getStrikeoutThickness

        public float getStrikeoutThickness()
        Description copied from class: PDFFont
        Get the strikeout thickness, as a proportion of the font size.
        Specified by:
        getStrikeoutThickness in class PDFFont
      • getStrikeoutPosition

        public float getStrikeoutPosition()
        Description copied from class: PDFFont
        Get the strikeout position, as a proportion of the font size. The value is the distance from the baseline to the center of the strikeout, and shuold be positive.
        Specified by:
        getStrikeoutPosition in class PDFFont
      • getSubscriptSize

        public float getSubscriptSize()
        Description copied from class: PDFFont

        Get the recommended size of a super/sub script version of this font, as a proportion of the normal font size. Typical value is around 0.6.

        For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.

        Specified by:
        getSubscriptSize in class PDFFont
      • getSuperscriptPosition

        public float getSuperscriptPosition()
        Description copied from class: PDFFont

        Get the recommended position of a super-script version of this font, as a proportion of the sub-scripted font size. Value is always positive.

        For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.

        Specified by:
        getSuperscriptPosition in class PDFFont
      • getSubscriptPosition

        public float getSubscriptPosition()
        Description copied from class: PDFFont

        Get the recommended position of a sub-script version of this font, as a proportion of the sub-scripted font size. Value is almost always zero or negative.

        For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.

        Specified by:
        getSubscriptPosition in class PDFFont
      • getUnderlineThickness

        public float getUnderlineThickness()
        Description copied from class: PDFFont
        Get the underline thickness, as a proportion of the font size.
        Specified by:
        getUnderlineThickness in class PDFFont
      • getUnderlinePosition

        public float getUnderlinePosition()
        Description copied from class: PDFFont
        Get the underline position, as a proportion of the font size. Like the getDescender() method, the returned value is almost always negative, indicating below the baseline. The distance is from the baseline to the center of the underline.
        Specified by:
        getUnderlinePosition in class PDFFont
      • getAscender

        public float getAscender()
        Description copied from class: PDFFont
        Get the Ascender for the font (the maximum height above the baseline the font extends), as a proportion of the point size. The exact source of of this value is undefined except for OpenTypeFonts, where it comes from the "hhea.ascender" value normally, or the from "OS2.sTypoAscender" flag if the USE_TYPO_METRICS flag is set.
        Specified by:
        getAscender in class PDFFont
      • getDescender

        public float getDescender()
        Description copied from class: PDFFont
        Get the Descender for the font (the maximum height below the baseline the font extends), as a proportion of the point size. The returned value is usually negative. The exact source of this value is undefined except for OpenTypeFonts, where it comes from the "hhea.descender" value normally, or the from "OS2.sTypoDescender" flag if the USE_TYPO_METRICS flag is set.
        Specified by:
        getDescender in class PDFFont
      • getXHeight

        public float getXHeight()
        Description copied from class: PDFFont
        Get the X-Height of the font - normally the height of a lower-case 'x' character.
        Specified by:
        getXHeight in class PDFFont
      • getCapHeight

        public float getCapHeight()
        Description copied from class: PDFFont
        Get the Cap-Height of the font - normally the height of an upper-case 'O' character
        Specified by:
        getCapHeight in class PDFFont
      • isItalic

        public boolean isItalic()
        Description copied from class: PDFFont
        Return true if the font is italic
        Specified by:
        isItalic in class PDFFont
      • isBold

        public boolean isBold()
        Description copied from class: PDFFont
        Return true if the font is bold
        Specified by:
        isBold in class PDFFont
      • isSerif

        public boolean isSerif()
        Description copied from class: PDFFont
        Return true if the font is serif
        Specified by:
        isSerif in class PDFFont
      • isMonospace

        public boolean isMonospace()
        Description copied from class: PDFFont
        Return true if every character has the same width (like Courier), false if every character is potentially a different width (like Times-Roman)
        Specified by:
        isMonospace in class PDFFont
      • versionItalic

        public PDFFont versionItalic()
        Description copied from class: PDFFont
        Return an italic version of the current font, if available. By default this just returns this font.
        Overrides:
        versionItalic in class PDFFont
      • versionBold

        public PDFFont versionBold()
        Description copied from class: PDFFont
        Return a bold version of the current font, if available. By default this just returns this font.
        Overrides:
        versionBold in class PDFFont
      • versionNonItalic

        public PDFFont versionNonItalic()
        Description copied from class: PDFFont
        Return a non-italic version of the current font, if available. By default this just returns this font.
        Overrides:
        versionNonItalic in class PDFFont
      • versionNonBold

        public PDFFont versionNonBold()
        Description copied from class: PDFFont
        Return a non-bold version of the current font, if available. By default this just returns this font.
        Overrides:
        versionNonBold in class PDFFont
      • versionRegular

        public PDFFont versionRegular()
        Description copied from class: PDFFont
        Return a non-bold, non-italic version of the current font, if available. By default this just returns this font.
        Overrides:
        versionRegular in class PDFFont
      • getDefinedCodepoints

        public java.util.BitSet getDefinedCodepoints()
        Description copied from class: PDFFont
        Return read-only BitSet containing all the Unicode codepoints defined in this font
        Specified by:
        getDefinedCodepoints in class PDFFont
      • toString

        public java.lang.String toString()
      • putLiteral

        public void putLiteral​(java.lang.String key,
                               java.lang.String tokens)
        Put a literal token sequnce. For debugging
        Parameters:
        key - the key
        tokens - the token sequence, eg "true" or "/foo" or "[/Foo/Bar]". No refs, just direct objects.