com.sun.pdfview.font

Class PDFFont

public abstract class PDFFont extends Object

a Font definition for PDF files
Constructor Summary
protected PDFFont(String baseFont, PDFFontDescriptor descriptor)
Create a PDFFont given the base font name and the font descriptor
Method Summary
StringgetBaseFont()
Get the postscript name of this font
PDFGlyphgetCachedGlyph(char src, String name)
Get a glyph for a given character code.
PDFFontDescriptorgetDescriptor()
Get the descriptor for this font
PDFFontEncodinggetEncoding()
Get the encoding for this font
static PDFFontgetFont(PDFObject obj, HashMap resources)
get the PDFFont corresponding to the font described in a PDFObject.
protected abstract PDFGlyphgetGlyph(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.
ListgetGlyphs(String text)
Get the glyphs associated with a given String in this font
StringgetSubtype()
Get the subtype of this font.
PDFCMapgetUnicodeMap()
Get the CMap which maps the characters in this font to unicode names
voidsetBaseFont(String baseFont)
Set the postscript name of this font
voidsetDescriptor(PDFFontDescriptor descriptor)
Set the descriptor font descriptor
voidsetEncoding(PDFFontEncoding encoding)
Set the encoding for this font
voidsetSubtype(String subtype)
Set the font subtype
voidsetUnicodeMap(PDFCMap unicodeMap)
Set the CMap which maps the characters in this font to unicode names

Constructor Detail

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 Detail

getBaseFont

public String getBaseFont()
Get the postscript name of this font

Returns: the postscript name of this font

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

getDescriptor

public PDFFontDescriptor getDescriptor()
Get the descriptor for this font

Returns: the font descriptor

getEncoding

public PDFFontEncoding getEncoding()
Get the encoding for this font

Returns: the encoding which maps from this font to actual characters

getFont

public static PDFFont getFont(PDFObject obj, HashMap resources)
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)

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

getGlyphs

public List getGlyphs(String text)
Get the glyphs associated with a given String in this font

Parameters: text the text to translate into glyphs

getSubtype

public String getSubtype()
Get the subtype of this font.

Returns: the subtype, one of: Type0, Type1, TrueType or Type3

getUnicodeMap

public PDFCMap getUnicodeMap()
Get the CMap which maps the characters in this font to unicode names

setBaseFont

public void setBaseFont(String baseFont)
Set the postscript name of this font

Parameters: baseFont the postscript name of the font

setDescriptor

public void setDescriptor(PDFFontDescriptor descriptor)
Set the descriptor font descriptor

setEncoding

public void setEncoding(PDFFontEncoding encoding)
Set the encoding for this font

setSubtype

public void setSubtype(String subtype)
Set the font subtype

setUnicodeMap

public void setUnicodeMap(PDFCMap unicodeMap)
Set the CMap which maps the characters in this font to unicode names