Class PDTrueTypeFont
- java.lang.Object
-
- com.tom_roush.pdfbox.pdmodel.font.PDFont
-
- com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
-
- com.tom_roush.pdfbox.pdmodel.font.PDTrueTypeFont
-
- All Implemented Interfaces:
COSObjectable,PDFontLike,PDVectorFont
public class PDTrueTypeFont extends PDSimpleFont implements PDVectorFont
TrueType 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 PDTrueTypeFont(COSDictionary fontDictionary)Creates a new TrueType font from a Font dictionary.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intcodeToGID(int code)Returns the GID for the given character code.protected byte[]encode(int unicode)Encodes the given Unicode code point for use in a PDF content stream.StringgetBaseFont()Returns the PostScript name of the font.BoundingBoxgetBoundingBox()Returns the font's bounding box.FontBoxFontgetFontBoxFont()Returns the embedded or system font used for rendering.protected Map<Integer,Integer>getGIDToCode()Inverts the font's code -> GID mapping.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(int code)Returns the glyph path for the given character code.android.graphics.PathgetPath(String name)Returns the path for the character with the given name.TrueTypeFontgetTrueTypeFont()Returns the embedded or substituted TrueType font.floatgetWidthFromFont(int code)Returns the width of a glyph in the embedded font file.booleanhasGlyph(int code)Returns true if this font contains a glyph for the given character code.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.static PDTrueTypeFontload(PDDocument doc, File file, Encoding encoding)Loads a TTF to be embedded into a document as a simple font.static PDTrueTypeFontload(PDDocument doc, InputStream input, Encoding encoding)Loads a TTF to be embedded into a document as a simple font.static PDTrueTypeFontloadTTF(PDDocument doc, File file)Deprecated.UsePDType0Font.load(PDDocument, File)instead.static PDTrueTypeFontloadTTF(PDDocument doc, InputStream input)Deprecated.UsePDType0Font.load(PDDocument, InputStream)instead.intreadCode(InputStream in)Reads a character code from a content stream string.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, getDisplacement, getFontDescriptor, getFontMatrix, getPositionVector, getSpaceWidth, getStandard14AFM, getStringWidth, getSubType, getType, getWidth, getWidths, hashCode, readCMap, setFontDescriptor, toString
-
Methods inherited from class com.tom_roush.pdfbox.pdmodel.font.PDSimpleFont
addToSubset, getEncoding, getGlyphList, getInvertedEncoding, getStandard14Width, getSymbolicFlag, isFontSymbolic, isStandard14, isSymbolic, isVertical, readEncoding, subset, toUnicode, toUnicode, willBeSubset
-
-
-
-
Constructor Detail
-
PDTrueTypeFont
public PDTrueTypeFont(COSDictionary fontDictionary) throws IOException
Creates a new TrueType font from a Font dictionary.- Parameters:
fontDictionary- The font dictionary according to the PDF specification.- Throws:
IOException
-
-
Method Detail
-
load
public static PDTrueTypeFont load(PDDocument doc, File file, Encoding encoding) throws IOException
Loads a TTF to be embedded into a document as a simple font.Note: Simple fonts only support 256 characters. For Unicode support, use
PDType0Font.load(PDDocument, File)instead.- Parameters:
doc- The PDF document that will hold the embedded font.file- A TTF file.encoding- The PostScript encoding vector to be used for embedding.- Returns:
- a PDTrueTypeFont instance.
- Throws:
IOException- If there is an error loading the data.
-
load
public static PDTrueTypeFont load(PDDocument doc, InputStream input, Encoding encoding) throws IOException
Loads a TTF to be embedded into a document as a simple font.Note: Simple fonts only support 256 characters. For Unicode support, use
PDType0Font.load(PDDocument, InputStream)instead.- Parameters:
doc- The PDF document that will hold the embedded font.input- A TTF file streamencoding- The PostScript encoding vector to be used for embedding.- Returns:
- a PDTrueTypeFont instance.
- Throws:
IOException- If there is an error loading the data.
-
loadTTF
@Deprecated public static PDTrueTypeFont loadTTF(PDDocument doc, File file) throws IOException
Deprecated.UsePDType0Font.load(PDDocument, File)instead.Loads a TTF to be embedded into a document as a simple font. Only supports WinAnsiEncoding.- Parameters:
doc- The PDF document that will hold the embedded font.file- A TTF file.- Returns:
- a PDTrueTypeFont instance.
- Throws:
IOException- If there is an error loading the data.
-
loadTTF
@Deprecated public static PDTrueTypeFont loadTTF(PDDocument doc, InputStream input) throws IOException
Deprecated.UsePDType0Font.load(PDDocument, InputStream)instead.Loads a TTF to be embedded into a document as a simple font. Only supports WinAnsiEncoding.- Parameters:
doc- The PDF document that will hold the embedded font.input- A TTF file stream- Returns:
- a PDTrueTypeFont instance.
- Throws:
IOException- If there is an error loading the data.
-
getBaseFont
public final String getBaseFont()
Returns the PostScript name of the font.
-
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.
-
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
-
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
-
getBoundingBox
public BoundingBox getBoundingBox() throws IOException
Description copied from interface:PDFontLikeReturns the font's bounding box.- Specified by:
getBoundingBoxin interfacePDFontLike- Specified by:
getBoundingBoxin classPDFont- Throws:
IOException
-
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
-
getTrueTypeFont
public TrueTypeFont getTrueTypeFont()
Returns the embedded or substituted TrueType font.
-
getWidthFromFont
public float getWidthFromFont(int code) throws IOExceptionDescription 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
- Throws:
IOException- if the font could not be read
-
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.
-
getGIDToCode
protected Map<Integer,Integer> getGIDToCode() throws IOException
Inverts the font's code -> GID mapping. Any duplicate (GID -> code) mappings will be lost.- Throws:
IOException
-
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
-
getPath
public android.graphics.Path getPath(int code) throws IOExceptionDescription copied from interface:PDVectorFontReturns the glyph path for the given character code.- Specified by:
getPathin interfacePDVectorFont- Parameters:
code- character code- Throws:
IOException- if the font could not be read
-
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
-
hasGlyph
public boolean hasGlyph(int code) throws IOExceptionDescription copied from interface:PDVectorFontReturns true if this font contains a glyph for the given character code.- Specified by:
hasGlyphin interfacePDVectorFont- Parameters:
code- character code- Throws:
IOException
-
codeToGID
public int codeToGID(int code) throws IOExceptionReturns the GID for the given character code.- Parameters:
code- character code- Returns:
- GID (glyph index)
- Throws:
IOException
-
-