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.PDFont
DEFAULT_FONT_MATRIX, dict
-
Fields inherited from class com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
encoding, glyphList
-
-
Constructor Summary
Constructors Constructor Description PDType3Font(COSDictionary fontDictionary)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.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".android.graphics.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.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 java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from class com.tom_roush.pdfbox.pdmodel.font.PDFont
encode, equals, getAverageFontWidth, getCOSObject, getFontDescriptor, getPositionVector, getSpaceWidth, getStandard14AFM, getStringWidth, getSubType, getType, getWidths, hashCode, readCMap, setFontDescriptor, toString
-
Methods inherited from class com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
addToSubset, getEncoding, getGlyphList, getInvertedEncoding, getStandard14Width, getSymbolicFlag, isStandard14, isSymbolic, isVertical, subset, toUnicode, toUnicode, willBeSubset
-
-
-
-
Constructor Detail
-
PDType3Font
public PDType3Font(COSDictionary fontDictionary) throws IOException
Constructor.- Parameters:
fontDictionary- The font dictionary according to the PDF specification.- 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".- Specified by:
getNamein interfacePDFontLike- Specified by:
getNamein classPDFont
-
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 android.graphics.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.- Specified by:
getWidthin interfacePDFontLike- Overrides:
getWidthin classPDFont- Parameters:
code- character code- Throws:
IOException
-
getWidthFromFont
public float getWidthFromFont(int code)
Description copied from interface:PDFontLikeReturns the width of a glyph in the embedded font file.- Specified by:
getWidthFromFontin interfacePDFontLike- Specified by:
getWidthFromFontin classPDFont- Parameters:
code- character code- Returns:
- width in glyph space
-
isEmbedded
public boolean isEmbedded()
Description copied from interface:PDFontLikeReturns true if the font file is embedded in the PDF.- Specified by:
isEmbeddedin interfacePDFontLike- Specified by:
isEmbeddedin classPDFont
-
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.- Specified by:
getHeightin interfacePDFontLike- Specified by:
getHeightin classPDFont- 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.- Specified by:
isDamagedin interfacePDFontLike- Specified by:
isDamagedin classPDFont
-
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.- Returns:
- The fonts bounding box.
-
getBoundingBox
public BoundingBox getBoundingBox()
Description copied from interface:PDFontLikeReturns the font's bounding box.- Specified by:
getBoundingBoxin interfacePDFontLike- Specified by:
getBoundingBoxin classPDFont
-
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
-
-