Package org.apache.pdfbox.pdmodel.font
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
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
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
This will get the average font width for all characters.Looks up, creates, returns the AWT Font.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.float
Determines the width of the space character.This will get the ToUnicode object.protected boolean
This will get the value for isFontSubstituted, which indicates if the font was substituted due to a problem with the embedded one.protected void
setIsFontSubstituted
(boolean isSubstituted) This will set the value for isFontSubstituted.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
clear, clearResources, cmapEncoding, drawString, encode, encodeToCID, equals, getAFM, getAverageFontWidthFromAFMFile, getBaseFont, getCodeFromArray, getCOSObject, getEncoding, getFirstChar, getFontDescriptor, getFontEncoding, getFontMatrix, getFontWidth, getFontWidthFromAFMFile, getLastChar, getStringFromArray, getStringWidth, getSubType, getToUnicodeCMap, getType, getWidths, hashCode, hasToUnicode, isSymbolicFont, isType0Font, isType1Font, isType3Font, parseCmap, setBaseFont, setEncoding, setFirstChar, setFontDescriptor, setFontEncoding, setHasToUnicode, setLastChar, setWidths
-
Constructor Details
-
PDSimpleFont
public PDSimpleFont()Constructor. -
PDSimpleFont
Constructor.- Parameters:
fontDictionary
- The font dictionary according to the PDF specification.
-
-
Method Details
-
getawtFont
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 classPDFont
- 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
This will get the font height for a character.- Specified by:
getFontHeight
in classPDFont
- 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
This will get the font width for a character.- Specified by:
getFontWidth
in classPDFont
- 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
This will get the average font width for all characters.- Specified by:
getAverageFontWidth
in classPDFont
- Returns:
- The width is in 1000 unit of text space, ie 333 or 777
- Throws:
IOException
- If an error occurs while parsing.
-
getToUnicode
This will get the ToUnicode object.- Returns:
- The ToUnicode object.
-
setToUnicode
This will set the ToUnicode object.- Parameters:
unicode
- The unicode object.
-
getFontBoundingBox
This will get the fonts bounding box.- Specified by:
getFontBoundingBox
in classPDFont
- Returns:
- The fonts bouding box.
- Throws:
IOException
- If there is an error getting the bounding box.
-
writeFont
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 classPDFont
-
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 classPDFont
- Returns:
- the width of the space character
-