Package org.apache.fontbox.cff
Class CFFParser
java.lang.Object
org.apache.fontbox.cff.CFFParser
This class represents a parser for a CFF font.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceSource from which bytes may be read in the future.(package private) static classInner class representing a font's built-in CFF encoding.private static classInner class holding the DictData of a CFF font.(package private) static classInner class representing an embedded CFF charset.private static classAn empty charset in a malformed CID font.private static classInner class representing a Format0 charset.private static classInner class representing a Format0 encoding.private static classFormat 0 FDSelect.private static classInner class representing a Format1 charset.private static classInner class representing a Format1 encoding.private static classInner class representing a Format2 charset.private static final classFormat 3 FDSelect data.private static classInner class holding the header of a CFF font.private static final classStructure of a Range3 element.private static final classInner class representing a rang mapping for a CID charset. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidconcatenateMatrix(List<Number> matrixDest, List<Number> matrixConcat) private CFFDataInputcreateTaggedCFFDataInput(CFFDataInput input, byte[] bytes) private StringgetString(CFFParser.DictData dict, String name) parse(byte[] bytes) Parse CFF font using a byte array as input.parse(byte[] bytes, CFFParser.ByteSource source) Parse CFF font using byte array, also passing in a byte source for future use.private voidparseCIDFontDicts(CFFDataInput input, CFFParser.DictData topDict, CFFCIDFont font, int nrOfcharStrings) Parse dictionaries specific to a CIDFont.private CFFFontparseFont(CFFDataInput input, String name, byte[] topDictIndex) private voidparseType1Dicts(CFFDataInput input, CFFParser.DictData topDict, CFFType1Font font, CFFCharset charset) Parse dictionaries specific to a Type 1-equivalent font.private CFFCharsetreadCharset(CFFDataInput dataInput, int nGlyphs, boolean isCIDFont) private static CFFParser.DictDatareadDictData(CFFDataInput input) private static CFFParser.DictDatareadDictData(CFFDataInput input, int dictSize) private CFFEncodingreadEncoding(CFFDataInput dataInput, CFFCharset charset) private static CFFParser.DictData.EntryreadEntry(CFFDataInput input) private static FDSelectreadFDSelect(CFFDataInput dataInput, int nGlyphs, CFFCIDFont ros) Read the FDSelect Data according to the format.private CFFParser.Format0CharsetreadFormat0Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) private CFFParser.Format0EncodingreadFormat0Encoding(CFFDataInput dataInput, CFFCharset charset, int format) private static CFFParser.Format0FDSelectreadFormat0FDSelect(CFFDataInput dataInput, int format, int nGlyphs, CFFCIDFont ros) Read the Format 0 of the FDSelect data structure.private CFFParser.Format1CharsetreadFormat1Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) private CFFParser.Format1EncodingreadFormat1Encoding(CFFDataInput dataInput, CFFCharset charset, int format) private CFFParser.Format2CharsetreadFormat2Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) private static CFFParser.Format3FDSelectreadFormat3FDSelect(CFFDataInput dataInput, int format, int nGlyphs, CFFCIDFont ros) Read the Format 3 of the FDSelect data structure.private static CFFParser.HeaderreadHeader(CFFDataInput input) private static byte[][]readIndexData(CFFDataInput input) private static int[]readIndexDataOffsets(CFFDataInput input) private static IntegerreadIntegerNumber(CFFDataInput input, int b0) private static longreadLong(CFFDataInput input) private static CFFOperatorreadOperator(CFFDataInput input, int b0) private static CFFOperator.KeyreadOperatorKey(CFFDataInput input, int b0) readPrivateDict(CFFParser.DictData privateDict) private static DoublereadRealNumber(CFFDataInput input) private StringreadString(int index) private static String[]readStringIndexData(CFFDataInput input) private voidreadSupplement(CFFDataInput dataInput, CFFParser.CFFBuiltInEncoding encoding) private static StringreadTagName(CFFDataInput input) toString()
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOGLog instance. -
TAG_OTTO
- See Also:
-
TAG_TTCF
- See Also:
-
TAG_TTFONLY
- See Also:
-
stringIndex
-
source
-
debugFontName
-
-
Constructor Details
-
CFFParser
public CFFParser()
-
-
Method Details
-
parse
Parse CFF font using byte array, also passing in a byte source for future use.- Parameters:
bytes- source bytessource- source to re-read bytes from in the future- Returns:
- the parsed CFF fonts
- Throws:
IOException- If there is an error reading from the stream
-
parse
Parse CFF font using a byte array as input.- Parameters:
bytes- the given byte array- Returns:
- the parsed CFF fonts
- Throws:
IOException- If there is an error reading from the stream
-
createTaggedCFFDataInput
- Throws:
IOException
-
readTagName
- Throws:
IOException
-
readLong
- Throws:
IOException
-
readHeader
- Throws:
IOException
-
readIndexDataOffsets
- Throws:
IOException
-
readIndexData
- Throws:
IOException
-
readStringIndexData
- Throws:
IOException
-
readDictData
- Throws:
IOException
-
readDictData
- Throws:
IOException
-
readEntry
- Throws:
IOException
-
readOperator
- Throws:
IOException
-
readOperatorKey
- Throws:
IOException
-
readIntegerNumber
- Throws:
IOException
-
readRealNumber
- Throws:
IOException
-
parseFont
- Throws:
IOException
-
concatenateMatrix
-
parseCIDFontDicts
private void parseCIDFontDicts(CFFDataInput input, CFFParser.DictData topDict, CFFCIDFont font, int nrOfcharStrings) throws IOException Parse dictionaries specific to a CIDFont.- Throws:
IOException
-
readPrivateDict
-
parseType1Dicts
private void parseType1Dicts(CFFDataInput input, CFFParser.DictData topDict, CFFType1Font font, CFFCharset charset) throws IOException Parse dictionaries specific to a Type 1-equivalent font.- Throws:
IOException
-
readString
- Throws:
IOException
-
getString
- Throws:
IOException
-
readEncoding
- Throws:
IOException
-
readFormat0Encoding
private CFFParser.Format0Encoding readFormat0Encoding(CFFDataInput dataInput, CFFCharset charset, int format) throws IOException - Throws:
IOException
-
readFormat1Encoding
private CFFParser.Format1Encoding readFormat1Encoding(CFFDataInput dataInput, CFFCharset charset, int format) throws IOException - Throws:
IOException
-
readSupplement
private void readSupplement(CFFDataInput dataInput, CFFParser.CFFBuiltInEncoding encoding) throws IOException - Throws:
IOException
-
readFDSelect
private static FDSelect readFDSelect(CFFDataInput dataInput, int nGlyphs, CFFCIDFont ros) throws IOException Read the FDSelect Data according to the format.- Parameters:
dataInput-nGlyphs-ros-- Returns:
- the FDSelect data
- Throws:
IOException
-
readFormat0FDSelect
private static CFFParser.Format0FDSelect readFormat0FDSelect(CFFDataInput dataInput, int format, int nGlyphs, CFFCIDFont ros) throws IOException Read the Format 0 of the FDSelect data structure.- Parameters:
dataInput-format-nGlyphs-ros-- Returns:
- the Format 0 of the FDSelect data
- Throws:
IOException
-
readFormat3FDSelect
private static CFFParser.Format3FDSelect readFormat3FDSelect(CFFDataInput dataInput, int format, int nGlyphs, CFFCIDFont ros) throws IOException Read the Format 3 of the FDSelect data structure.- Parameters:
dataInput-format-nGlyphs-ros-- Returns:
- the Format 3 of the FDSelect data
- Throws:
IOException
-
readCharset
private CFFCharset readCharset(CFFDataInput dataInput, int nGlyphs, boolean isCIDFont) throws IOException - Throws:
IOException
-
readFormat0Charset
private CFFParser.Format0Charset readFormat0Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) throws IOException - Throws:
IOException
-
readFormat1Charset
private CFFParser.Format1Charset readFormat1Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) throws IOException - Throws:
IOException
-
readFormat2Charset
private CFFParser.Format2Charset readFormat2Charset(CFFDataInput dataInput, int format, int nGlyphs, boolean isCIDFont) throws IOException - Throws:
IOException
-
toString
-