org.apache.pdfbox.pdmodel.font
Class PDSimpleFont

java.lang.Object
  extended by org.apache.pdfbox.pdmodel.font.PDFont
      extended by org.apache.pdfbox.pdmodel.font.PDSimpleFont
All Implemented Interfaces:
COSObjectable
Direct Known Subclasses:
PDCIDFont, PDMMType1Font, PDTrueTypeFont, PDType0Font, PDType1CFont, PDType1Font, PDType3Font

public abstract class PDSimpleFont
extends PDFont

This class contains implementation details of the simple pdf fonts.

Version:
$Revision: 1.18 $
Author:
Ben Litchfield

Field Summary
 
Fields inherited from class org.apache.pdfbox.pdmodel.font.PDFont
cmap, cmapObjects, font, fontMatrix, resourceRootCMAP, toUnicodeCmap
 
Constructor Summary
PDSimpleFont()
          Constructor.
PDSimpleFont(COSDictionary fontDictionary)
          Constructor.
 
Method Summary
protected  void determineEncoding()
          Determines the encoding for the font.
 void drawString(String string, int[] codePoints, Graphics g, float fontSize, AffineTransform at, float x, float y)
          This will draw a string on a canvas using the font.
 float getAverageFontWidth()
          This will get the average font width for all characters.
 Font getawtFont()
          Looks up, creates, returns the AWT Font.
 PDRectangle getFontBoundingBox()
          This will get the fonts bounding box.
 float getFontHeight(byte[] c, int offset, int length)
          This will get the font height for a character.
 float getFontWidth(byte[] c, int offset, int length)
          This will get the font width for a character.
 COSBase getToUnicode()
          This will get the ToUnicode object.
protected  boolean isFontSubstituted()
           
protected  void setIsFontSubstituted(boolean isSubstituted)
           
 void setToUnicode(COSBase unicode)
          This will set the ToUnicode object.
protected  void writeFont(Graphics2D g2d, AffineTransform at, float x, float y, GlyphVector glyphs)
          This will draw a string on a canvas using the font.
 
Methods inherited from class org.apache.pdfbox.pdmodel.font.PDFont
clearResources, cmapEncoding, drawString, encode, encodeToCID, equals, getAFM, getAverageFontWidthFromAFMFile, getBaseFont, getCodeFromArray, getCOSObject, getEncoding, getFirstChar, getFontDescriptor, getFontEncoding, getFontMatrix, getFontWidth, getFontWidthFromAFMFile, getLastChar, getStringWidth, getSubType, getType, getWidths, hashCode, hasToUnicode, isType0Font, isType1Font, parseCmap, setBaseFont, setEncoding, setFirstChar, setFontDescriptor, setFontEncoding, setHasToUnicode, setLastChar, setWidths
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PDSimpleFont

public PDSimpleFont()
Constructor.


PDSimpleFont

public PDSimpleFont(COSDictionary fontDictionary)
Constructor.

Parameters:
fontDictionary - The font dictionary according to the PDF specification.
Method Detail

getawtFont

public Font getawtFont()
                throws IOException
Looks up, creates, returns the AWT Font.

Returns:
returns the awt font to bes used for rendering
Throws:
IOException - if something went wrong.

drawString

public void drawString(String string,
                       int[] codePoints,
                       Graphics g,
                       float fontSize,
                       AffineTransform at,
                       float x,
                       float y)
                throws IOException
This will draw a string on a canvas using the font.

Specified by:
drawString in class PDFont
Parameters:
string - The string to draw.
codePoints - The codePoints of the given string.
g - The graphics to draw onto.
fontSize - The size of the font to draw.
at - The transformation matrix with all information for scaling and shearing of the font.
x - The x coordinate to draw at.
y - The y coordinate to draw at.
Throws:
IOException - If there is an error drawing the specific string.

getFontHeight

public float getFontHeight(byte[] c,
                           int offset,
                           int length)
                    throws IOException
This will get the font height for a character.

Specified by:
getFontHeight in class PDFont
Parameters:
c - The character code to get the width for.
offset - The offset into the array.
length - The length of the data.
Returns:
The width is in 1000 unit of text space, ie 333 or 777
Throws:
IOException - If an error occurs while parsing.

getFontWidth

public float getFontWidth(byte[] c,
                          int offset,
                          int length)
                   throws IOException
This will get the font width for a character.

Specified by:
getFontWidth in class PDFont
Parameters:
c - The character code to get the width for.
offset - The offset into the array.
length - The length of the data.
Returns:
The width is in 1000 unit of text space, ie 333 or 777
Throws:
IOException - If an error occurs while parsing.

getAverageFontWidth

public float getAverageFontWidth()
                          throws IOException
This will get the average font width for all characters.

Specified by:
getAverageFontWidth in class PDFont
Returns:
The width is in 1000 unit of text space, ie 333 or 777
Throws:
IOException - If an error occurs while parsing.

getToUnicode

public COSBase getToUnicode()
This will get the ToUnicode object.

Returns:
The ToUnicode object.

setToUnicode

public void setToUnicode(COSBase unicode)
This will set the ToUnicode object.

Parameters:
unicode - The unicode object.

getFontBoundingBox

public PDRectangle getFontBoundingBox()
                               throws IOException
This will get the fonts bounding box.

Specified by:
getFontBoundingBox in class PDFont
Returns:
The fonts bouding box.
Throws:
IOException - If there is an error getting the bounding box.

writeFont

protected void writeFont(Graphics2D g2d,
                         AffineTransform at,
                         float x,
                         float y,
                         GlyphVector glyphs)
This will draw a string on a canvas using the font.

Parameters:
g2d - The graphics to draw onto.
at - The transformation matrix with all information for scaling and shearing of the font.
x - The x coordinate to draw at.
y - The y coordinate to draw at.
glyphs - The GlyphVector containing the glyphs to be drawn.

determineEncoding

protected void determineEncoding()
Determines the encoding for the font. This method as to be overwritten, as there are different possibilities to define a mapping.

Specified by:
determineEncoding in class PDFont

isFontSubstituted

protected boolean isFontSubstituted()

setIsFontSubstituted

protected void setIsFontSubstituted(boolean isSubstituted)