Class PDType3Font
- All Implemented Interfaces:
COSObjectable
,PDFontLike
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate COSDictionary
private BoundingBox
private Matrix
private static final org.apache.commons.logging.Log
Log instance.private final ResourceCache
private PDResources
Fields inherited from class org.apache.pdfbox.pdmodel.font.PDSimpleFont
encoding, glyphList
Fields inherited from class org.apache.pdfbox.pdmodel.font.PDFont
DEFAULT_FONT_MATRIX, dict
-
Constructor Summary
ConstructorsConstructorDescriptionPDType3Font
(COSDictionary fontDictionary) Constructor.PDType3Font
(COSDictionary fontDictionary, ResourceCache resourceCache) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]
encode
(int unicode) Encodes the given Unicode code point for use in a PDF content stream.private BoundingBox
Returns the font's bounding box.getCharProc
(int code) Returns the stream of the glyph for the given character codeReturns the dictionary containing all streams to be used to render the glyphs.getDisplacement
(int code) Returns the displacement vector (w0, w1) in text space, for the given character.This will get the fonts bounding box from its dictionary.Returns the embedded or system font used for rendering.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.getName()
Returns the name of this font, either the PostScript "BaseName" or the Type 3 "Name".Returns the path for the character with the given name.Returns the optional resources of the type3 stream.float
getWidth
(int code) Returns the advance width of the given character, in glyph space.float
getWidthFromFont
(int code) Returns the width of a glyph in the embedded font file.boolean
Returns true if the font contains the character with the given name.boolean
Returns true if the embedded font file is damaged.boolean
Returns true if the font file is embedded in the PDF.protected Boolean
Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.boolean
Returns true if this font is one of the "Standard 14" fonts and receives special handling.int
readCode
(InputStream in) Reads a character code from a content stream string.protected final void
Reads the Encoding from the Font dictionary or the embedded or substituted font file.protected Encoding
Called by readEncoding() if the encoding needs to be extracted from the font file.Methods inherited from class org.apache.pdfbox.pdmodel.font.PDSimpleFont
addToSubset, getEncoding, getGlyphList, getStandard14Width, getSymbolicFlag, hasExplicitWidth, isSymbolic, isVertical, subset, toUnicode, toUnicode, willBeSubset
Methods inherited from class org.apache.pdfbox.pdmodel.font.PDFont
encode, equals, getAverageFontWidth, getCOSObject, getFontDescriptor, getPositionVector, getSpaceWidth, getStandard14AFM, getStringWidth, getSubType, getToUnicodeCMap, getType, getWidths, hashCode, readCMap, setFontDescriptor, toString
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOGLog instance. -
resources
-
charProcs
-
fontMatrix
-
fontBBox
-
resourceCache
-
-
Constructor Details
-
PDType3Font
Constructor.- Parameters:
fontDictionary
- The font dictionary according to the PDF specification.- Throws:
IOException
-
PDType3Font
Constructor.- Parameters:
fontDictionary
- The font dictionary according to the PDF specification.resourceCache
- Resource cache, can be null.- Throws:
IOException
-
-
Method Details
-
getName
Description copied from interface:PDFontLike
Returns the name of this font, either the PostScript "BaseName" or the Type 3 "Name". -
readEncoding
Description copied from class:PDSimpleFont
Reads the Encoding from the Font dictionary or the embedded or substituted font file. Must be called at the end of any subclass constructors.- Overrides:
readEncoding
in classPDSimpleFont
- Throws:
IOException
- if the font file could not be read
-
readEncodingFromFont
Description copied from class:PDSimpleFont
Called by readEncoding() if the encoding needs to be extracted from the font file.- Specified by:
readEncodingFromFont
in classPDSimpleFont
- Throws:
IOException
- if the font file could not be read.
-
isFontSymbolic
Description copied from class:PDSimpleFont
Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.- Overrides:
isFontSymbolic
in classPDSimpleFont
-
getPath
Description copied from class:PDSimpleFont
Returns 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:
getPath
in classPDSimpleFont
- Returns:
- glyph path
- Throws:
IOException
- if the path could not be read
-
hasGlyph
Description copied from class:PDSimpleFont
Returns true if the font contains the character with the given name.- Specified by:
hasGlyph
in classPDSimpleFont
- Throws:
IOException
- if the path could not be read
-
getFontBoxFont
Description copied from class:PDSimpleFont
Returns the embedded or system font used for rendering. This is never null.- Specified by:
getFontBoxFont
in classPDSimpleFont
-
getDisplacement
Description copied from class:PDFont
Returns 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:
getDisplacement
in classPDFont
- Parameters:
code
- character code- Returns:
- displacement vector
- Throws:
IOException
-
getWidth
Description copied from interface:PDFontLike
Returns 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 GeneralPath instead. See the cyan rectangles in the DrawPrintTextLocations.java example to see this in action.
- Specified by:
getWidth
in interfacePDFontLike
- Overrides:
getWidth
in classPDFont
- Parameters:
code
- character code- Throws:
IOException
-
getWidthFromFont
Description copied from interface:PDFontLike
Returns 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:PDFontLike
Returns true if the font file is embedded in the PDF. -
getHeight
Description copied from interface:PDFontLike
Returns 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 GeneralPath. See the cyan rectangles in the DrawPrintTextLocations.java example to see this in action.- Parameters:
code
- character code- Throws:
IOException
-
encode
Description copied from class:PDFont
Encodes 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:
encode
in 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
Description copied from class:PDFont
Reads a character code from a content stream string. Codes may be up to 4 bytes long.- Specified by:
readCode
in classPDFont
- Parameters:
in
- string stream- Returns:
- character code
- Throws:
IOException
- if the CMap or stream cannot be read
-
getFontMatrix
Description copied from interface:PDFontLike
Returns the font matrix, which represents the transformation from glyph space to text space.- Specified by:
getFontMatrix
in interfacePDFontLike
- Overrides:
getFontMatrix
in classPDFont
-
isDamaged
public boolean isDamaged()Description copied from interface:PDFontLike
Returns true if the embedded font file is damaged. -
isStandard14
public boolean isStandard14()Description copied from class:PDFont
Returns true if this font is one of the "Standard 14" fonts and receives special handling.- Overrides:
isStandard14
in classPDSimpleFont
-
getResources
Returns the optional resources of the type3 stream.- Returns:
- the resources bound to be used when parsing the type3 stream
-
getFontBBox
This will get the fonts bounding box from its dictionary.- Returns:
- The fonts bounding box.
-
getBoundingBox
Description copied from interface:PDFontLike
Returns the font's bounding box. -
generateBoundingBox
-
getCharProcs
Returns the dictionary containing all streams to be used to render the glyphs.- Returns:
- the dictionary containing all glyph streams.
-
getCharProc
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
-