Package com.itextpdf.io.font
Class FontEncoding
- java.lang.Object
-
- com.itextpdf.io.font.FontEncoding
-
- Direct Known Subclasses:
DocFontEncoding
public class FontEncoding extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
baseEncoding
Base font encoding.protected int[]
codeToUnicode
protected java.lang.String[]
differences
Encoding names.private static byte[]
emptyBytes
static java.lang.String
FONT_SPECIFIC
protected boolean
fontSpecific
true
if the font must use its built in encoding.static java.lang.String
NOTDEF
A not defined character in a custom PDF encoding.protected IntHashtable
unicodeDifferences
Encodings unicode differencesprotected IntHashtable
unicodeToCode
Mapping map from unicode to simple code according to the encoding.
-
Constructor Summary
Constructors Modifier Constructor Description protected
FontEncoding()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addSymbol(int code, int unicode)
boolean
canDecode(int code)
Check whether abyte
code can be converted to unicode symbol according to the encoding.boolean
canEncode(int unicode)
Check whether a unicode symbol or font specific code can be converted tobyte
according to the encoding.int
convertToByte(int unicode)
Converts a unicode symbol or font specific code tobyte
according to the encoding.byte[]
convertToBytes(java.lang.String text)
Converts aString
to abyte
array according to the encoding.static FontEncoding
createEmptyFontEncoding()
static FontEncoding
createFontEncoding(java.lang.String baseEncoding)
static FontEncoding
createFontSpecificEncoding()
This encoding will base on font encoding (FontSpecific encoding in Type 1 terminology)protected void
fillCustomEncoding()
static void
fillFontEncoding(FontEncoding encoding)
FillFontEncoding
object with default data.protected void
fillNamedEncoding()
protected void
fillStandardEncoding()
java.lang.String
getBaseEncoding()
java.lang.String
getDifference(int index)
int
getUnicode(int index)
Gets unicode value for corresponding font's char code.int
getUnicodeDifference(int index)
boolean
hasDifferences()
boolean
isBuiltWith(java.lang.String encoding)
Checks whether theFontEncoding
was built with corresponding encoding.boolean
isFontSpecific()
protected static java.lang.String
normalizeEncoding(java.lang.String enc)
Normalize the encoding names.void
setDifference(int index, java.lang.String difference)
Sets a new value in the differences array.
-
-
-
Field Detail
-
emptyBytes
private static final byte[] emptyBytes
-
FONT_SPECIFIC
public static final java.lang.String FONT_SPECIFIC
- See Also:
- Constant Field Values
-
NOTDEF
public static final java.lang.String NOTDEF
A not defined character in a custom PDF encoding.- See Also:
- Constant Field Values
-
baseEncoding
protected java.lang.String baseEncoding
Base font encoding.
-
fontSpecific
protected boolean fontSpecific
true
if the font must use its built in encoding. In that case theencoding
is only used to map a char to the position inside the font, not to the expected char name.
-
unicodeToCode
protected IntHashtable unicodeToCode
Mapping map from unicode to simple code according to the encoding.
-
codeToUnicode
protected int[] codeToUnicode
-
differences
protected java.lang.String[] differences
Encoding names.
-
unicodeDifferences
protected IntHashtable unicodeDifferences
Encodings unicode differences
-
-
Method Detail
-
createFontEncoding
public static FontEncoding createFontEncoding(java.lang.String baseEncoding)
-
createEmptyFontEncoding
public static FontEncoding createEmptyFontEncoding()
-
createFontSpecificEncoding
public static FontEncoding createFontSpecificEncoding()
This encoding will base on font encoding (FontSpecific encoding in Type 1 terminology)- Returns:
- created font specific encoding
-
fillFontEncoding
public static void fillFontEncoding(FontEncoding encoding)
FillFontEncoding
object with default data.- Parameters:
encoding
-FontEncoding
to fill.
-
getBaseEncoding
public java.lang.String getBaseEncoding()
-
isFontSpecific
public boolean isFontSpecific()
-
addSymbol
public boolean addSymbol(int code, int unicode)
-
getUnicode
public int getUnicode(int index)
Gets unicode value for corresponding font's char code.- Parameters:
index
- font's char code- Returns:
- -1, if the char code unsupported or valid unicode.
-
getUnicodeDifference
public int getUnicodeDifference(int index)
-
hasDifferences
public boolean hasDifferences()
-
getDifference
public java.lang.String getDifference(int index)
-
setDifference
public void setDifference(int index, java.lang.String difference)
Sets a new value in the differences array. Seedifferences
.- Parameters:
index
- position to replacedifference
- new difference value
-
convertToBytes
public byte[] convertToBytes(java.lang.String text)
Converts aString
to abyte
array according to the encoding. String could contain a unicode symbols or font specific codes.- Parameters:
text
- theString
to be converted.- Returns:
- an array of
byte
representing the conversion according to the encoding
-
convertToByte
public int convertToByte(int unicode)
Converts a unicode symbol or font specific code tobyte
according to the encoding.- Parameters:
unicode
- a unicode symbol or FontSpecif code to be converted.- Returns:
- a
byte
representing the conversion according to the encoding
-
canEncode
public boolean canEncode(int unicode)
Check whether a unicode symbol or font specific code can be converted tobyte
according to the encoding.- Parameters:
unicode
- a unicode symbol or font specific code to be checked.- Returns:
true
ifch
could be encoded.
-
canDecode
public boolean canDecode(int code)
Check whether abyte
code can be converted to unicode symbol according to the encoding.- Parameters:
code
- a byte code to be checked.- Returns:
true
ifcode
could be decoded.
-
isBuiltWith
public boolean isBuiltWith(java.lang.String encoding)
Checks whether theFontEncoding
was built with corresponding encoding.- Parameters:
encoding
- an encoding- Returns:
- true, if the FontEncoding was built with the encoding. Otherwise false.
-
fillCustomEncoding
protected void fillCustomEncoding()
-
fillNamedEncoding
protected void fillNamedEncoding()
-
fillStandardEncoding
protected void fillStandardEncoding()
-
normalizeEncoding
protected static java.lang.String normalizeEncoding(java.lang.String enc)
Normalize the encoding names. "winansi" is changed to "Cp1252" and "macroman" is changed to "MacRoman".- Parameters:
enc
- the encoding to be normalized- Returns:
- the normalized encoding
-
-