Package org.apache.fontbox.ttf
Class CmapSubtable
java.lang.Object
org.apache.fontbox.ttf.CmapSubtable
- All Implemented Interfaces:
CmapLookup
A "cmap" subtable.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Class used to manage CMap - Format 2. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int[]
private static final long
private static final org.apache.commons.logging.Log
private int
private int
private long
private static final long
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
buildGlyphIdToCharacterCodeLookup
(int maxGlyphId) getCharacterCode
(int gid) Deprecated.private int
getCharCode
(int gid) getCharCodes
(int gid) Returns all possible character codes for the given gid, or null if there is none.int
getGlyphId
(int characterCode) Returns the GlyphId linked with the given character code.int
int
(package private) void
initData
(TTFDataStream data) This will read the required data from the stream.(package private) void
initSubtable
(CmapTable cmap, int numGlyphs, TTFDataStream data) This will read the required data from the stream.private int[]
newGlyphIdToCharacterCode
(int size) Workaround for the fact that glyphIdToCharacterCode doesn't distinguish between missing character codes and code 0.(package private) void
processSubtype0
(TTFDataStream data) Initialize the CMapEntry when it is a subtype 0.(package private) void
processSubtype10
(TTFDataStream data, int numGlyphs) Reads a format 10 subtable.(package private) void
processSubtype12
(TTFDataStream data, int numGlyphs) Reads a format 12 subtable.(package private) void
processSubtype13
(TTFDataStream data, int numGlyphs) Reads a format 13 subtable.(package private) void
processSubtype14
(TTFDataStream data, int numGlyphs) Reads a format 14 subtable.(package private) void
processSubtype2
(TTFDataStream data, int numGlyphs) Read a format 2 subtable.(package private) void
processSubtype4
(TTFDataStream data, int numGlyphs) Reads a format 4 subtable.(package private) void
processSubtype6
(TTFDataStream data, int numGlyphs) Reads a format 6 subtable.(package private) void
processSubtype8
(TTFDataStream data, int numGlyphs) Reads a format 8 subtable.void
setPlatformEncodingId
(int platformEncodingIdValue) void
setPlatformId
(int platformIdValue) toString()
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOG -
LEAD_OFFSET
private static final long LEAD_OFFSET- See Also:
-
SURROGATE_OFFSET
private static final long SURROGATE_OFFSET- See Also:
-
platformId
private int platformId -
platformEncodingId
private int platformEncodingId -
subTableOffset
private long subTableOffset -
glyphIdToCharacterCode
private int[] glyphIdToCharacterCode -
glyphIdToCharacterCodeMultiple
-
characterCodeToGlyphId
-
-
Constructor Details
-
CmapSubtable
public CmapSubtable()
-
-
Method Details
-
initData
This will read the required data from the stream.- Parameters:
data
- The stream to read the data from.- Throws:
IOException
- If there is an error reading the data.
-
initSubtable
This will read the required data from the stream.- Parameters:
cmap
- the CMAP this encoding belongs to.numGlyphs
- number of glyphs.data
- The stream to read the data from.- Throws:
IOException
- If there is an error reading the data.
-
processSubtype8
Reads a format 8 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype10
Reads a format 10 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype12
Reads a format 12 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype13
Reads a format 13 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype14
Reads a format 14 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype6
Reads a format 6 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype4
Reads a format 4 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
buildGlyphIdToCharacterCodeLookup
private void buildGlyphIdToCharacterCodeLookup(int maxGlyphId) -
processSubtype2
Read a format 2 subtable.- Parameters:
data
- the data stream of the to be parsed ttf fontnumGlyphs
- number of glyphs to be read- Throws:
IOException
- If there is an error parsing the true type font.
-
processSubtype0
Initialize the CMapEntry when it is a subtype 0.- Parameters:
data
- the data stream of the to be parsed ttf font- Throws:
IOException
- If there is an error parsing the true type font.
-
newGlyphIdToCharacterCode
private int[] newGlyphIdToCharacterCode(int size) Workaround for the fact that glyphIdToCharacterCode doesn't distinguish between missing character codes and code 0. -
getPlatformEncodingId
public int getPlatformEncodingId()- Returns:
- Returns the platformEncodingId.
-
setPlatformEncodingId
public void setPlatformEncodingId(int platformEncodingIdValue) - Parameters:
platformEncodingIdValue
- The platformEncodingId to set.
-
getPlatformId
public int getPlatformId()- Returns:
- Returns the platformId.
-
setPlatformId
public void setPlatformId(int platformIdValue) - Parameters:
platformIdValue
- The platformId to set.
-
getGlyphId
public int getGlyphId(int characterCode) Returns the GlyphId linked with the given character code.- Specified by:
getGlyphId
in interfaceCmapLookup
- Parameters:
characterCode
- the given character code to be mapped- Returns:
- glyphId the corresponding glyph id for the given character code
-
getCharacterCode
Deprecated.the mapping may be ambiguous, seegetCharCodes(int)
. The first mapped value is returned by default.Returns the character code for the given GID, or null if there is none.- Parameters:
gid
- glyph id- Returns:
- character code
-
getCharCode
private int getCharCode(int gid) -
getCharCodes
Returns all possible character codes for the given gid, or null if there is none.- Specified by:
getCharCodes
in interfaceCmapLookup
- Parameters:
gid
- glyph id- Returns:
- a list with all character codes the given gid maps to
-
toString
-
getCharCodes(int)
.