Class PDFFontEncoding

java.lang.Object
com.sun.pdfview.font.PDFFontEncoding

public class PDFFontEncoding extends Object
The PDFFont encoding encapsulates the mapping from character codes in the PDF document to glyphs of the font. Encodings take two basic forms. For Type1, TrueType, and Type3 fonts, the encoding maps from character codes to Strings, which represent the glyphs of the font. For Type0 fonts, the mapping is a CMap which maps character codes to characters in one of many descendant fonts. Note that the data in the PDF might be ASCII characters (bytes) or it might be a multi-byte format such as unicode. For now we will assume all glyph ids fit into at most the two bytes of a character.
  • Field Details

    • TYPE_ENCODING

      private static final int TYPE_ENCODING
      Encoding types
      See Also:
    • TYPE_CMAP

      private static final int TYPE_CMAP
      See Also:
    • baseEncoding

      private int[] baseEncoding
      the base encoding (an array of integers which can be mapped to names using the methods on FontSupport
    • differences

      private Map<Character,String> differences
      any differences from the base encoding
    • cmap

      private PDFCMap cmap
      a CMap for fonts encoded by CMap
    • type

      private int type
      the type of this encoding (encoding or CMap)
  • Constructor Details

  • Method Details

    • getGlyphs

      public List<PDFGlyph> getGlyphs(PDFFont font, String text)
      Get the glyphs associated with a given String
    • getGlyphFromEncoding

      private PDFGlyph getGlyphFromEncoding(PDFFont font, char src)
      Get a glyph from an encoding, given a font and character
    • getGlyphFromCMap

      private PDFGlyph getGlyphFromCMap(PDFFont font, char src)
      Get a glyph from a CMap, given a Type0 font and a character
    • parseEncoding

      public void parseEncoding(PDFObject encoding) throws IOException
      Parse a PDF encoding object for the actual encoding
      Throws:
      IOException
    • getBaseEncoding

      private int[] getBaseEncoding(String encodingName)
      Get the base encoding for a given name