Class PDSimpleFont

java.lang.Object
org.apache.pdfbox.pdmodel.font.PDFont
org.apache.pdfbox.pdmodel.font.PDSimpleFont
All Implemented Interfaces:
COSObjectable
Direct Known Subclasses:
PDCIDFont, 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
  • Constructor Details

    • PDSimpleFont

      public PDSimpleFont()
      Constructor.
    • PDSimpleFont

      public PDSimpleFont(COSDictionary fontDictionary)
      Constructor.
      Parameters:
      fontDictionary - The font dictionary according to the PDF specification.
  • Method Details

    • 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()
      This will get the value for isFontSubstituted, which indicates if the font was substituted due to a problem with the embedded one.
      Returns:
      true if the font was substituted
    • setIsFontSubstituted

      protected void setIsFontSubstituted(boolean isSubstituted)
      This will set the value for isFontSubstituted.
      Parameters:
      isSubstituted - true if the font was substituted
    • getSpaceWidth

      public float getSpaceWidth()
      Determines the width of the space character.
      Specified by:
      getSpaceWidth in class PDFont
      Returns:
      the width of the space character