Class PDFFont

java.lang.Object
org.loboevolution.pdfview.font.PDFFont
Direct Known Subclasses:
OutlineFont, Type0Font, Type3Font

public abstract class PDFFont extends Object
a Font definition for PDF files Author Mike Wessler
  • Constructor Details

    • PDFFont

      protected PDFFont(String baseFont, PDFFontDescriptor descriptor)
      Create a PDFFont given the base font name and the font descriptor
      Parameters:
      baseFont - the postscript name of this font
      descriptor - the descriptor for the font
  • Method Details

    • getFont

      public static PDFFont getFont(PDFObject obj, Map<String,PDFObject> resources) throws IOException
      get the PDFFont corresponding to the font described in a PDFObject. The object is actually a dictionary containing the following keys:
      Type = "Font"
      Subtype = (Type1 | TrueType | Type3 | Type0 | MMType1 | CIDFontType0 | CIDFontType2)
      FirstChar = #
      LastChar = #
      Widths = array of #
      Encoding = (some name representing a dictionary in the resources | an inline dictionary)

      For Type1 and TrueType fonts, the dictionary also contains:
      BaseFont = (some name, or XXXXXX+Name as a subset of font Name)

      For Type3 font, the dictionary contains:
      FontBBox = (rectangle)
      FontMatrix = (array, typically [0.001, 0, 0, 0.001, 0, 0])
      CharProcs = (dictionary) Resources = (dictionary)

      Parameters:
      obj - a PDFObject object.
      resources - a HashMap object.
      Returns:
      a PDFFont object.
      Throws:
      IOException - if any.
    • getGlyphs

      public List<PDFGlyph> getGlyphs(String text)
      Get the glyphs associated with a given String in this font
      Parameters:
      text - the text to translate into glyphs
      Returns:
      a List object.
    • getCachedGlyph

      public PDFGlyph getCachedGlyph(char src, String name)
      Get a glyph for a given character code. The glyph is returned from the cache if available, or added to the cache if not
      Parameters:
      src - the character code of this glyph
      name - the name of the glyph, or null if the name is unknown
      Returns:
      a glyph for this character
    • getGlyph

      protected abstract PDFGlyph getGlyph(char src, String name)
      Get the glyph for a given character code and name

      The preferred method of getting the glyph should be by name. If the name is null or not valid, then the character code should be used. If the both the code and the name are invalid, the undefined glyph should be returned.

      Note this method must *always* return a glyph.

      Parameters:
      src - the character code of this glyph
      name - the name of this glyph or null if unknown
      Returns:
      a glyph for this character
    • toString

      public String toString()

      Turn this font into a pretty String

      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)

      Compare two fonts base on the baseFont

      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()

      Hash a font based on its base font

      Overrides:
      hashCode in class Object