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.StringbaseEncodingBase font encoding.protected int[]codeToUnicodeprotected java.lang.String[]differencesEncoding names.private static byte[]emptyBytesstatic java.lang.StringFONT_SPECIFICprotected booleanfontSpecifictrueif the font must use its built in encoding.static java.lang.StringNOTDEFA not defined character in a custom PDF encoding.protected IntHashtableunicodeDifferencesEncodings unicode differencesprotected IntHashtableunicodeToCodeMapping map from unicode to simple code according to the encoding.
-
Constructor Summary
Constructors Modifier Constructor Description protectedFontEncoding()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddSymbol(int code, int unicode)booleancanDecode(int code)Check whether abytecode can be converted to unicode symbol according to the encoding.booleancanEncode(int unicode)Check whether a unicode symbol or font specific code can be converted tobyteaccording to the encoding.intconvertToByte(int unicode)Converts a unicode symbol or font specific code tobyteaccording to the encoding.byte[]convertToBytes(java.lang.String text)Converts aStringto abytearray according to the encoding.static FontEncodingcreateEmptyFontEncoding()static FontEncodingcreateFontEncoding(java.lang.String baseEncoding)static FontEncodingcreateFontSpecificEncoding()This encoding will base on font encoding (FontSpecific encoding in Type 1 terminology)protected voidfillCustomEncoding()static voidfillFontEncoding(FontEncoding encoding)FillFontEncodingobject with default data.protected voidfillNamedEncoding()protected voidfillStandardEncoding()java.lang.StringgetBaseEncoding()java.lang.StringgetDifference(int index)intgetUnicode(int index)Gets unicode value for corresponding font's char code.intgetUnicodeDifference(int index)booleanhasDifferences()booleanisBuiltWith(java.lang.String encoding)Checks whether theFontEncodingwas built with corresponding encoding.booleanisFontSpecific()protected static java.lang.StringnormalizeEncoding(java.lang.String enc)Normalize the encoding names.voidsetDifference(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
trueif the font must use its built in encoding. In that case theencodingis 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)
FillFontEncodingobject with default data.- Parameters:
encoding-FontEncodingto 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 aStringto abytearray according to the encoding. String could contain a unicode symbols or font specific codes.- Parameters:
text- theStringto be converted.- Returns:
- an array of
byterepresenting the conversion according to the encoding
-
convertToByte
public int convertToByte(int unicode)
Converts a unicode symbol or font specific code tobyteaccording to the encoding.- Parameters:
unicode- a unicode symbol or FontSpecif code to be converted.- Returns:
- a
byterepresenting the conversion according to the encoding
-
canEncode
public boolean canEncode(int unicode)
Check whether a unicode symbol or font specific code can be converted tobyteaccording to the encoding.- Parameters:
unicode- a unicode symbol or font specific code to be checked.- Returns:
trueifchcould be encoded.
-
canDecode
public boolean canDecode(int code)
Check whether abytecode can be converted to unicode symbol according to the encoding.- Parameters:
code- a byte code to be checked.- Returns:
trueifcodecould be decoded.
-
isBuiltWith
public boolean isBuiltWith(java.lang.String encoding)
Checks whether theFontEncodingwas 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
-
-