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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Encodingprotected GlyphListprivate Booleanprivate static final org.apache.commons.logging.LogFields inherited from class org.apache.pdfbox.pdmodel.font.PDFont
DEFAULT_FONT_MATRIX, dict -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for embedding.PDSimpleFont(COSDictionary fontDictionary) Constructor.PDSimpleFont(Standard14Fonts.FontName baseFont) Constructor for Standard 14. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToSubset(int codePoint) Adds the given Unicode point to the subset.private voidassignGlyphList(Standard14Fonts.FontName fontName) Returns the Encoding.abstract FontBoxFontReturns the embedded or system font used for rendering.Returns the glyphlist.abstract GeneralPathReturns the path for the character with the given name.protected final floatgetStandard14Width(int code) Returns the glyph width from the AFM if this is a Standard 14 font.protected final BooleanReturns the value of the symbolic flag, allowing for the fact that the result may be indeterminate.booleanhasExplicitWidth(int code) Returns true if the Font dictionary specifies an explicit width for the given glyph.abstract booleanReturns true if the font contains the character with the given name.protected BooleanInternal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.protected booleanbooleanReturns true if this font is one of the "Standard 14" fonts and receives special handling.final booleanReturns true if the font is a symbolic (that is, it does not use the Adobe Standard Roman character set).booleanReturns true if the font uses vertical writing mode.protected voidReads the Encoding from the Font dictionary or the embedded or substituted font file.protected abstract EncodingCalled by readEncoding() if the encoding needs to be extracted from the font file.voidsubset()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.booleanReturns 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, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.pdfbox.pdmodel.font.PDFontLike
getBoundingBox, getHeight, getName, getWidthFromFont, isDamaged, isEmbedded
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOG -
encoding
-
glyphList
-
isSymbolic
-
noUnicode
-
-
Constructor Details
-
PDSimpleFont
PDSimpleFont()Constructor for embedding. -
PDSimpleFont
PDSimpleFont(Standard14Fonts.FontName baseFont) Constructor for Standard 14. -
PDSimpleFont
PDSimpleFont(COSDictionary fontDictionary) Constructor.- Parameters:
fontDictionary- Font dictionary.
-
-
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.- Returns:
- encoding of the font
- Throws:
IOException- if the font file could not be read.
-
getEncoding
Returns the Encoding.- Returns:
- encoding
-
getGlyphList
Returns the glyphlist.- Returns:
- the glyphlist
-
isSymbolic
public final boolean isSymbolic()Returns true if the font is a symbolic (that is, it does not use the Adobe Standard Roman character set).- Returns:
- true if the font is a symbolic
-
isFontSymbolic
Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.- Returns:
- true if isSymbolic
-
getSymbolicFlag
Returns the value of the symbolic flag, allowing for the fact that the result may be indeterminate.- Returns:
- the value of the isSymbolic flag form the font descriptor
-
toUnicode
Description copied from class:PDFontReturns the Unicode character sequence which corresponds to the given character code. -
toUnicode
Description copied from class:PDFontReturns the Unicode character sequence which corresponds to the given character code. -
isVertical
public boolean isVertical()Description copied from class:PDFontReturns true if the font uses vertical writing mode.- Specified by:
isVerticalin classPDFont- Returns:
- true if the font uses vertical writing mode
-
getStandard14Width
protected final float getStandard14Width(int code) Description copied from class:PDFontReturns the glyph width from the AFM if this is a Standard 14 font.- Specified by:
getStandard14Widthin classPDFont- Parameters:
code- character code- Returns:
- width in 1/1000 text space
-
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 classPDFont- Returns:
- true if this font is one of the "Standard 14" fonts
-
isNonZeroBoundingBox
-
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. *- Parameters:
name- glyph name- Returns:
- glyph path of the character with the given name
- Throws:
IOException- if the path could not be read
-
hasGlyph
Returns true if the font contains the character with the given name.- Parameters:
name- glyph name- Returns:
- true if the font contains the character with the given name
- Throws:
IOException- if the path could not be read
-
getFontBoxFont
Returns the embedded or system font used for rendering. This is never null.- Returns:
- the embedded or system font used for rendering
-
addToSubset
public void addToSubset(int codePoint) Description copied from class:PDFontAdds the given Unicode point to the subset.- Specified by:
addToSubsetin classPDFont- Parameters:
codePoint- Unicode code point
-
subset
Description copied from class:PDFontReplaces this font with a subset containing only the given Unicode characters.- Specified by:
subsetin classPDFont- Throws:
IOException- if the subset could not be written
-
willBeSubset
public boolean willBeSubset()Description copied from class:PDFontReturns true if this font will be subset when embedded.- Specified by:
willBeSubsetin classPDFont- Returns:
- true if this font will be subset when embedded
-
hasExplicitWidth
Description copied from interface:PDFontLikeReturns 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- Returns:
- true if the Font dictionary specifies an explicit width for the given glyph
- Throws:
IOException- if the font could not be read
-
assignGlyphList
-