public abstract class PDFont extends Object implements COSObjectable, PDFontLike
| Modifier and Type | Field and Description |
|---|---|
protected static Matrix |
DEFAULT_FONT_MATRIX |
protected COSDictionary |
dict |
| Modifier | Constructor and Description |
|---|---|
protected |
PDFont(COSDictionary fontDictionary)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
addToSubset(int codePoint)
Adds the given Unicode point to the subset.
|
protected abstract byte[] |
encode(int unicode)
Encodes the given Unicode code point for use in a PDF content stream.
|
byte[] |
encode(String text)
Encodes the given string for use in a PDF content stream.
|
boolean |
equals(Object other) |
float |
getAverageFontWidth()
This will get the average font width for all characters.
|
COSDictionary |
getCOSObject()
Convert this standard java object to a COS object.
|
Vector |
getDisplacement(int code)
Returns the displacement vector (w0, w1) in text space, for the given character.
|
PDFontDescriptor |
getFontDescriptor()
Returns the font descriptor, may be null.
|
Matrix |
getFontMatrix()
Returns the font matrix, which represents the transformation from glyph space to text space.
|
Vector |
getPositionVector(int code)
Returns the position vector (v), in text space, for the given character.
|
float |
getSpaceWidth()
Determines the width of the space character.
|
protected org.apache.fontbox.afm.FontMetrics |
getStandard14AFM()
Returns the AFM if this is a Standard 14 font.
|
protected abstract float |
getStandard14Width(int code)
Returns the glyph width from the AFM if this is a Standard 14 font.
|
float |
getStringWidth(String text)
Returns the width of the given Unicode string.
|
String |
getSubType()
This will get the subtype of font.
|
protected org.apache.fontbox.cmap.CMap |
getToUnicodeCMap()
Get the /ToUnicode CMap.
|
String |
getType()
This will always return "Font" for fonts.
|
float |
getWidth(int code)
Returns the advance width of the given character, in glyph space.
|
protected List<Float> |
getWidths()
The widths of the characters.
|
int |
hashCode() |
boolean |
isStandard14()
Returns true if this font is one of the "Standard 14" fonts and receives special handling.
|
abstract boolean |
isVertical()
Returns true if the font uses vertical writing mode.
|
protected org.apache.fontbox.cmap.CMap |
readCMap(COSBase base)
Reads a CMap given a COS Stream or Name.
|
abstract int |
readCode(InputStream in)
Reads a character code from a content stream string.
|
protected void |
setFontDescriptor(PDFontDescriptor fontDescriptor)
Sets the font descriptor when embedding a font.
|
abstract void |
subset()
Replaces this font with a subset containing only the given Unicode characters.
|
String |
toString() |
String |
toUnicode(int code)
Returns the Unicode character sequence which corresponds to the given character code.
|
String |
toUnicode(int code,
GlyphList customGlyphList)
Returns the Unicode character sequence which corresponds to the given character code.
|
abstract boolean |
willBeSubset()
Returns true if this font will be subset when embedded.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetBoundingBox, getHeight, getName, getWidthFromFont, hasExplicitWidth, isDamaged, isEmbeddedprotected static final Matrix DEFAULT_FONT_MATRIX
protected final COSDictionary dict
protected PDFont(COSDictionary fontDictionary) throws IOException
fontDictionary - Font dictionary.IOExceptionprotected final org.apache.fontbox.afm.FontMetrics getStandard14AFM()
public PDFontDescriptor getFontDescriptor()
PDFontLikegetFontDescriptor in interface PDFontLikeprotected final void setFontDescriptor(PDFontDescriptor fontDescriptor)
protected final org.apache.fontbox.cmap.CMap readCMap(COSBase base) throws IOException
base - COSName or COSStreamIOExceptionpublic COSDictionary getCOSObject()
COSObjectablegetCOSObject in interface COSObjectablepublic Vector getPositionVector(int code)
PDFontLikegetPositionVector in interface PDFontLikecode - character codepublic Vector getDisplacement(int code) throws IOException
code - character codeIOExceptionpublic float getWidth(int code)
throws IOException
PDFontLikeIf you want the visual bounds of the glyph then call getPath(..) on the appropriate PDFont subclass to retrieve the glyph outline as a GeneralPath instead. See the cyan rectangles in the DrawPrintTextLocations.java example to see this in action.
getWidth in interface PDFontLikecode - character codeIOExceptionprotected abstract float getStandard14Width(int code)
code - character codepublic final byte[] encode(String text) throws IOException
text - Any Unicode text.IOException - If the text could not be encoded.IllegalArgumentException - if a character isn't supported by the font.protected abstract byte[] encode(int unicode)
throws IOException
This method is called when embedding text in PDFs and when filling in fields.
unicode - Unicode code point.IOException - If the text could not be encoded.IllegalArgumentException - if a character isn't supported by the font.public float getStringWidth(String text) throws IOException
text - The text to get the width of.IOException - If there is an error getting the width information.IllegalArgumentException - if a character isn't supported by the font.public float getAverageFontWidth()
getAverageFontWidth in interface PDFontLikepublic abstract int readCode(InputStream in) throws IOException
in - string streamIOException - if the CMap or stream cannot be readpublic String toUnicode(int code, GlyphList customGlyphList) throws IOException
code - character codecustomGlyphList - a custom glyph list to use instead of the Adobe Glyph ListIOExceptionpublic String toUnicode(int code) throws IOException
code - character codeIOExceptionpublic String getType()
public String getSubType()
protected final List<Float> getWidths()
public Matrix getFontMatrix()
PDFontLikegetFontMatrix in interface PDFontLikepublic float getSpaceWidth()
public abstract boolean isVertical()
public boolean isStandard14()
public abstract void addToSubset(int codePoint)
codePoint - Unicode code pointpublic abstract void subset()
throws IOException
IOException - if the subset could not be writtenpublic abstract boolean willBeSubset()
protected org.apache.fontbox.cmap.CMap getToUnicodeCMap()
Copyright © 2002–2025 The Apache Software Foundation. All rights reserved.