public class PDType1CFont extends PDSimpleFont
Modifier and Type | Class and Description |
---|---|
private class |
PDType1CFont.FF3ByteSource |
Modifier and Type | Field and Description |
---|---|
private java.lang.Float |
avgWidth |
private CFFType1Font |
cffFont |
private BoundingBox |
fontBBox |
private Matrix |
fontMatrix |
private java.awt.geom.AffineTransform |
fontMatrixTransform |
private FontBoxFont |
genericFont |
private java.util.Map<java.lang.String,java.lang.Float> |
glyphHeights |
private boolean |
isDamaged |
private boolean |
isEmbedded |
private static org.apache.commons.logging.Log |
LOG |
encoding, glyphList
DEFAULT_FONT_MATRIX, dict
Constructor and Description |
---|
PDType1CFont(COSDictionary fontDictionary)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
codeToName(int code) |
protected byte[] |
encode(int unicode)
Encodes the given Unicode code point for use in a PDF content stream.
|
private BoundingBox |
generateBoundingBox() |
private float |
getAverageCharacterWidth() |
float |
getAverageFontWidth()
This will get the average font width for all characters.
|
java.lang.String |
getBaseFont()
Returns the PostScript name of the font.
|
BoundingBox |
getBoundingBox()
Returns the font's bounding box.
|
CFFType1Font |
getCFFType1Font()
Returns the embedded Type 1-equivalent CFF font.
|
FontBoxFont |
getFontBoxFont()
Returns the embedded or system font used for rendering.
|
Matrix |
getFontMatrix()
Returns the font matrix, which represents the transformation from glyph space to text space.
|
float |
getHeight(int code)
Returns the height of the given character, in glyph space.
|
java.lang.String |
getName()
Returns the name of this font, either the PostScript "BaseName" or the Type 3 "Name".
|
private java.lang.String |
getNameInFont(java.lang.String name)
Maps a PostScript glyph name to the name in the underlying font, for example when
using a TTF font we might map "W" to "uni0057".
|
java.awt.geom.GeneralPath |
getPath(java.lang.String name)
Returns the path for the character with the given name.
|
float |
getStringWidth(java.lang.String string)
Returns the width of the given Unicode string.
|
float |
getWidthFromFont(int code)
Returns the width of a glyph in the embedded font file.
|
boolean |
hasGlyph(java.lang.String name)
Returns true if the font contains the character with the given name.
|
boolean |
isDamaged()
Returns true if the embedded font file is damaged.
|
boolean |
isEmbedded()
Returns true if the font file is embedded in the PDF.
|
int |
readCode(java.io.InputStream in)
Reads a character code from a content stream string.
|
protected Encoding |
readEncodingFromFont()
Called by readEncoding() if the encoding needs to be extracted from the font file.
|
addToSubset, getEncoding, getGlyphList, getStandard14Width, getSymbolicFlag, hasExplicitWidth, isFontSymbolic, isStandard14, isSymbolic, isVertical, readEncoding, subset, toUnicode, toUnicode, willBeSubset
encode, equals, getCOSObject, getDisplacement, getFontDescriptor, getPositionVector, getSpaceWidth, getStandard14AFM, getSubType, getType, getWidth, getWidths, hashCode, readCMap, setFontDescriptor, toString
private static final org.apache.commons.logging.Log LOG
private final java.util.Map<java.lang.String,java.lang.Float> glyphHeights
private java.lang.Float avgWidth
private Matrix fontMatrix
private final java.awt.geom.AffineTransform fontMatrixTransform
private final CFFType1Font cffFont
private final FontBoxFont genericFont
private final boolean isEmbedded
private final boolean isDamaged
private BoundingBox fontBBox
public PDType1CFont(COSDictionary fontDictionary) throws java.io.IOException
fontDictionary
- the corresponding dictionaryjava.io.IOException
- it something went wrongpublic FontBoxFont getFontBoxFont()
PDSimpleFont
getFontBoxFont
in class PDSimpleFont
public final java.lang.String getBaseFont()
public java.awt.geom.GeneralPath getPath(java.lang.String name) throws java.io.IOException
PDSimpleFont
getPath
in class PDSimpleFont
java.io.IOException
- if the path could not be readpublic boolean hasGlyph(java.lang.String name) throws java.io.IOException
PDSimpleFont
hasGlyph
in class PDSimpleFont
java.io.IOException
- if the path could not be readpublic final java.lang.String getName()
PDFontLike
public BoundingBox getBoundingBox() throws java.io.IOException
PDFontLike
java.io.IOException
private BoundingBox generateBoundingBox() throws java.io.IOException
java.io.IOException
public java.lang.String codeToName(int code)
protected Encoding readEncodingFromFont() throws java.io.IOException
PDSimpleFont
readEncodingFromFont
in class PDSimpleFont
java.io.IOException
- if the font file could not be read.public int readCode(java.io.InputStream in) throws java.io.IOException
PDFont
public final Matrix getFontMatrix()
PDFontLike
getFontMatrix
in interface PDFontLike
getFontMatrix
in class PDFont
public boolean isDamaged()
PDFontLike
public float getWidthFromFont(int code) throws java.io.IOException
PDFontLike
code
- character codejava.io.IOException
- if the font could not be readpublic boolean isEmbedded()
PDFontLike
public float getHeight(int code) throws java.io.IOException
PDFontLike
Warning: This method is deprecated in PDFBox 2.0 because there is no meaningful value
which it can return. The PDFontLike.getWidth(int)
method returns the advance width of a glyph,
but there is no corresponding advance height. The logical height of a character is the same
for every character in a font, so if you want that, retrieve the font bbox's height.
Otherwise if you want the visual bounds of the glyph then call getPath(..) on the appropriate
PDFont subclass to retrieve the glyph outline as a GeneralPath. See the cyan rectangles in
the DrawPrintTextLocations.java example to see this in action.
code
- character codejava.io.IOException
protected byte[] encode(int unicode) throws java.io.IOException
PDFont
This method is called when embedding text in PDFs and when filling in fields.
public float getStringWidth(java.lang.String string) throws java.io.IOException
PDFont
getStringWidth
in class PDFont
string
- The text to get the width of.java.io.IOException
- If there is an error getting the width information.public float getAverageFontWidth()
PDFont
getAverageFontWidth
in interface PDFontLike
getAverageFontWidth
in class PDFont
public CFFType1Font getCFFType1Font()
private float getAverageCharacterWidth()
private java.lang.String getNameInFont(java.lang.String name) throws java.io.IOException
java.io.IOException