Class PDType3Font
- java.lang.Object
-
- com.tom_roush.pdfbox.pdmodel.font.PDFont
-
- com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
-
- com.tom_roush.pdfbox.pdmodel.font.PDType3Font
-
- All Implemented Interfaces:
COSObjectable,PDFontLike
public class PDType3Font extends PDSimpleFont
A PostScript Type 3 Font.
-
-
Field Summary
-
Fields inherited from class com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
encoding, glyphList
-
Fields inherited from class com.tom_roush.pdfbox.pdmodel.font.PDFont
DEFAULT_FONT_MATRIX, dict
-
-
Constructor Summary
Constructors Constructor Description PDType3Font(COSDictionary fontDictionary)Constructor.PDType3Font(COSDictionary fontDictionary, ResourceCache resourceCache)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]encode(int unicode)Encodes the given Unicode code point for use in a PDF content stream.BoundingBoxgetBoundingBox()Returns the font's bounding box.PDType3CharProcgetCharProc(int code)Returns the stream of the glyph for the given character codeCOSDictionarygetCharProcs()Returns the dictionary containing all streams to be used to render the glyphs.VectorgetDisplacement(int code)Returns the displacement vector (w0, w1) in text space, for the given character.PDRectanglegetFontBBox()This will get the fonts bounding box from its dictionary.FontBoxFontgetFontBoxFont()Returns the embedded or system font used for rendering.MatrixgetFontMatrix()Returns the font matrix, which represents the transformation from glyph space to text space.floatgetHeight(int code)Returns the height of the given character, in glyph space.StringgetName()Returns the name of this font, either the PostScript "BaseName" or the Type 3 "Name".PathgetPath(String name)Returns the path for the character with the given name.PDResourcesgetResources()Returns the optional resources of the type3 stream.floatgetWidth(int code)Returns the advance width of the given character, in glyph space.floatgetWidthFromFont(int code)Returns the width of a glyph in the embedded font file.booleanhasGlyph(String name)Returns true if the font contains the character with the given name.booleanisDamaged()Returns true if the embedded font file is damaged.booleanisEmbedded()Returns true if the font file is embedded in the PDF.protected BooleanisFontSymbolic()Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.booleanisStandard14()Returns true if this font is one of the "Standard 14" fonts and receives special handling.intreadCode(InputStream in)Reads a character code from a content stream string.protected voidreadEncoding()Reads the Encoding from the Font dictionary or the embedded or substituted font file.protected EncodingreadEncodingFromFont()Called by readEncoding() if the encoding needs to be extracted from the font file.-
Methods inherited from class com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
addToSubset, getEncoding, getGlyphList, getStandard14Width, getSymbolicFlag, hasExplicitWidth, isSymbolic, isVertical, subset, toUnicode, toUnicode, willBeSubset
-
Methods inherited from class com.tom_roush.pdfbox.pdmodel.font.PDFont
encode, equals, getAverageFontWidth, getCOSObject, getFontDescriptor, getPositionVector, getSpaceWidth, getStandard14AFM, getStringWidth, getSubType, getToUnicodeCMap, getType, getWidths, hashCode, readCMap, setFontDescriptor, toString
-
-
-
-
Constructor Detail
-
PDType3Font
public PDType3Font(COSDictionary fontDictionary) throws IOException
Constructor.- Parameters:
fontDictionary- The font dictionary according to the PDF specification.- Throws:
IOException
-
PDType3Font
public PDType3Font(COSDictionary fontDictionary, ResourceCache resourceCache) throws IOException
Constructor.- Parameters:
fontDictionary- The font dictionary according to the PDF specification.resourceCache- Resource cache, can be null.- Throws:
IOException
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:PDFontLikeReturns the name of this font, either the PostScript "BaseName" or the Type 3 "Name".
-
readEncoding
protected final void readEncoding() throws IOExceptionDescription copied from class:PDSimpleFontReads the Encoding from the Font dictionary or the embedded or substituted font file. Must be called at the end of any subclass constructors.- Overrides:
readEncodingin classPDSimpleFont- Throws:
IOException- if the font file could not be read
-
readEncodingFromFont
protected Encoding readEncodingFromFont() throws IOException
Description copied from class:PDSimpleFontCalled by readEncoding() if the encoding needs to be extracted from the font file.- Specified by:
readEncodingFromFontin classPDSimpleFont- Throws:
IOException- if the font file could not be read.
-
isFontSymbolic
protected Boolean isFontSymbolic()
Description copied from class:PDSimpleFontInternal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.- Overrides:
isFontSymbolicin classPDSimpleFont
-
getPath
public Path getPath(String name) throws IOException
Description copied from class:PDSimpleFontReturns the path for the character with the given name. For some fonts, GIDs may be used instead of names when calling this method.- Specified by:
getPathin classPDSimpleFont- Returns:
- glyph path
- Throws:
IOException- if the path could not be read
-
hasGlyph
public boolean hasGlyph(String name) throws IOException
Description copied from class:PDSimpleFontReturns true if the font contains the character with the given name.- Specified by:
hasGlyphin classPDSimpleFont- Throws:
IOException- if the path could not be read
-
getFontBoxFont
public FontBoxFont getFontBoxFont()
Description copied from class:PDSimpleFontReturns the embedded or system font used for rendering. This is never null.- Specified by:
getFontBoxFontin classPDSimpleFont
-
getDisplacement
public Vector getDisplacement(int code) throws IOException
Description copied from class:PDFontReturns the displacement vector (w0, w1) in text space, for the given character. For horizontal text only the x component is used, for vertical text only the y component.- Overrides:
getDisplacementin classPDFont- Parameters:
code- character code- Returns:
- displacement vector
- Throws:
IOException
-
getWidth
public float getWidth(int code) throws IOExceptionDescription copied from interface:PDFontLikeReturns the advance width of the given character, in glyph space.If you want the visual bounds of the glyph then call getPath(..) on the appropriate PDFont subclass to retrieve the glyph outline as a Path instead. See the cyan rectangles in the DrawPrintTextLocations.java example to see this in action.
- Specified by:
getWidthin interfacePDFontLike- Overrides:
getWidthin classPDFont- Parameters:
code- character code- Throws:
IOException
-
getWidthFromFont
public float getWidthFromFont(int code) throws IOExceptionDescription copied from interface:PDFontLikeReturns the width of a glyph in the embedded font file.- Parameters:
code- character code- Returns:
- width in glyph space
- Throws:
IOException- if the font could not be read
-
isEmbedded
public boolean isEmbedded()
Description copied from interface:PDFontLikeReturns true if the font file is embedded in the PDF.
-
getHeight
public float getHeight(int code) throws IOExceptionDescription copied from interface:PDFontLikeReturns the height of the given character, in glyph space. This can be expensive to calculate. Results are only approximate.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 Path. See the cyan rectangles in the DrawPrintTextLocations.java example to see this in action.- Parameters:
code- character code- Throws:
IOException
-
encode
protected byte[] encode(int unicode) throws IOExceptionDescription copied from class:PDFontEncodes the given Unicode code point for use in a PDF content stream. Content streams use a multi-byte encoding with 1 to 4 bytes.This method is called when embedding text in PDFs and when filling in fields.
- Specified by:
encodein classPDFont- Parameters:
unicode- Unicode code point.- Returns:
- Array of 1 to 4 PDF content stream bytes.
- Throws:
IOException- If the text could not be encoded.
-
readCode
public int readCode(InputStream in) throws IOException
Description copied from class:PDFontReads a character code from a content stream string. Codes may be up to 4 bytes long.- Specified by:
readCodein classPDFont- Parameters:
in- string stream- Returns:
- character code
- Throws:
IOException- if the CMap or stream cannot be read
-
getFontMatrix
public Matrix getFontMatrix()
Description copied from interface:PDFontLikeReturns the font matrix, which represents the transformation from glyph space to text space.- Specified by:
getFontMatrixin interfacePDFontLike- Overrides:
getFontMatrixin classPDFont
-
isDamaged
public boolean isDamaged()
Description copied from interface:PDFontLikeReturns true if the embedded font file is damaged.
-
isStandard14
public boolean isStandard14()
Description copied from class:PDFontReturns true if this font is one of the "Standard 14" fonts and receives special handling.- Overrides:
isStandard14in classPDSimpleFont
-
getResources
public PDResources getResources()
Returns the optional resources of the type3 stream.- Returns:
- the resources bound to be used when parsing the type3 stream
-
getFontBBox
public PDRectangle getFontBBox()
This will get the fonts bounding box from its dictionary.- Returns:
- The fonts bounding box.
-
getBoundingBox
public BoundingBox getBoundingBox()
Description copied from interface:PDFontLikeReturns the font's bounding box.
-
getCharProcs
public COSDictionary getCharProcs()
Returns the dictionary containing all streams to be used to render the glyphs.- Returns:
- the dictionary containing all glyph streams.
-
getCharProc
public PDType3CharProc getCharProc(int code)
Returns the stream of the glyph for the given character code- Parameters:
code- character code- Returns:
- the stream to be used to render the glyph
-
-