Package org.apache.pdfbox.pdmodel.font
Class PDSimpleFont
java.lang.Object
org.apache.pdfbox.pdmodel.font.PDFont
org.apache.pdfbox.pdmodel.font.PDSimpleFont
- All Implemented Interfaces:
COSObjectable
,PDFontLike
- Direct Known Subclasses:
PDTrueTypeFont
,PDType1CFont
,PDType1Font
,PDType3Font
A simple font. Simple fonts use a PostScript encoding vector.
- Author:
- John Hewson
-
Field Summary
FieldsFields inherited from class org.apache.pdfbox.pdmodel.font.PDFont
DEFAULT_FONT_MATRIX, dict
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addToSubset
(int codePoint) Adds the given Unicode point to the subset.Returns the Encoding vector.abstract org.apache.fontbox.FontBoxFont
Returns the embedded or system font used for rendering.Returns the Encoding vector.abstract GeneralPath
Returns the path for the character with the given name.protected final float
getStandard14Width
(int code) Returns the glyph width from the AFM if this is a Standard 14 font.protected final Boolean
Returns the value of the symbolic flag, allowing for the fact that the result may be indeterminate.boolean
hasExplicitWidth
(int code) Returns true if the Font dictionary specifies an explicit width for the given glyph.abstract boolean
Returns true if the font contains the character with the given name.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.final boolean
Returns true the font is a symbolic (that is, it does not use the Adobe Standard Roman character set).boolean
Returns true if the font uses vertical writing mode.protected void
Reads the Encoding from the Font dictionary or the embedded or substituted font file.protected abstract Encoding
Called by readEncoding() if the encoding needs to be extracted from the font file.void
subset()
Replaces this font with a subset containing only the given Unicode characters.toUnicode
(int code) Returns the Unicode character sequence which corresponds to the given character code.Returns the Unicode character sequence which corresponds to the given character code.boolean
Returns true if this font will be subset when embedded.Methods inherited from class org.apache.pdfbox.pdmodel.font.PDFont
encode, encode, equals, getAverageFontWidth, getCOSObject, getDisplacement, getFontDescriptor, getFontMatrix, getPositionVector, getSpaceWidth, getStandard14AFM, getStringWidth, getSubType, getToUnicodeCMap, getType, getWidth, getWidths, hashCode, readCMap, readCode, setFontDescriptor, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.pdfbox.pdmodel.font.PDFontLike
getBoundingBox, getHeight, getName, getWidthFromFont, isDamaged, isEmbedded
-
Field Details
-
encoding
-
glyphList
-
-
Method Details
-
readEncoding
Reads the Encoding from the Font dictionary or the embedded or substituted font file. Must be called at the end of any subclass constructors.- Throws:
IOException
- if the font file could not be read
-
readEncodingFromFont
Called by readEncoding() if the encoding needs to be extracted from the font file.- Throws:
IOException
- if the font file could not be read.
-
getEncoding
Returns the Encoding vector. -
getGlyphList
Returns the Encoding vector. -
isSymbolic
public final boolean isSymbolic()Returns true the font is a symbolic (that is, it does not use the Adobe Standard Roman character set). -
isFontSymbolic
Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate. -
getSymbolicFlag
Returns the value of the symbolic flag, allowing for the fact that the result may be indeterminate. -
toUnicode
Description copied from class:PDFont
Returns the Unicode character sequence which corresponds to the given character code.- Overrides:
toUnicode
in classPDFont
- Parameters:
code
- character code- Returns:
- Unicode character(s)
- Throws:
IOException
-
toUnicode
Description copied from class:PDFont
Returns the Unicode character sequence which corresponds to the given character code.- Overrides:
toUnicode
in classPDFont
- Parameters:
code
- character codecustomGlyphList
- a custom glyph list to use instead of the Adobe Glyph List- Returns:
- Unicode character(s)
- Throws:
IOException
-
isVertical
public boolean isVertical()Description copied from class:PDFont
Returns true if the font uses vertical writing mode.- Specified by:
isVertical
in classPDFont
-
getStandard14Width
protected final float getStandard14Width(int code) Description copied from class:PDFont
Returns the glyph width from the AFM if this is a Standard 14 font.- Specified by:
getStandard14Width
in classPDFont
- Parameters:
code
- character code- Returns:
- width in 1/1000 text space
-
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 classPDFont
-
getPath
Returns the path for the character with the given name. For some fonts, GIDs may be used instead of names when calling this method.- Returns:
- glyph path
- Throws:
IOException
- if the path could not be read
-
hasGlyph
Returns true if the font contains the character with the given name.- Throws:
IOException
- if the path could not be read
-
getFontBoxFont
public abstract org.apache.fontbox.FontBoxFont getFontBoxFont()Returns the embedded or system font used for rendering. This is never null. -
addToSubset
public void addToSubset(int codePoint) Description copied from class:PDFont
Adds the given Unicode point to the subset.- Specified by:
addToSubset
in classPDFont
- Parameters:
codePoint
- Unicode code point
-
subset
Description copied from class:PDFont
Replaces this font with a subset containing only the given Unicode characters.- Specified by:
subset
in classPDFont
- Throws:
IOException
- if the subset could not be written
-
willBeSubset
public boolean willBeSubset()Description copied from class:PDFont
Returns true if this font will be subset when embedded.- Specified by:
willBeSubset
in classPDFont
-
hasExplicitWidth
Description copied from interface:PDFontLike
Returns true if the Font dictionary specifies an explicit width for the given glyph. This includes Width, W but not default widths entries.- Parameters:
code
- character code- Throws:
IOException
- if the font could not be read
-