com.lowagie.text.pdf

Class PdfEncodings

public class PdfEncodings extends Object

Supports fast encodings for winansi and PDFDocEncoding. Supports conversions from CJK encodings to CID. Supports custom encodings.

Author: Paulo Soares (psoares@consiste.pt)

Nested Class Summary
static classPdfEncodings.Cp437Conversion
static classPdfEncodings.SymbolConversion
static classPdfEncodings.SymbolTTConversion
static classPdfEncodings.WingdingsConversion
Field Summary
static HashMapcmaps
protected static intCIDCHAR
protected static intCIDNONE
protected static intCIDRANGE
static byte[][]CRLF_CID_NEWLINE
Assumes that '\\n' and '\\r\\n' are the newline sequences.
static HashMapextraEncodings
static IntHashtablepdfEncoding
static char[]pdfEncodingByteToChar
static IntHashtablewinansi
static char[]winansiByteToChar
Method Summary
static voidaddExtraEncoding(String name, ExtraEncoding enc)
Adds an extra encoding.
static voidbreakLong(long n, int size, byte[] seqs)
static voidclearCmap(String name)
Clears the CJK cmaps from the cache.
static StringconvertCmap(String name, byte[] seq)
Converts a byte array encoded as name to a CID string.
static StringconvertCmap(String name, byte[] seq, int start, int length)
Converts a byte array encoded as name to a CID string.
static byte[]convertToBytes(String text, String encoding)
Converts a String to a byte array according to the font's encoding.
static StringconvertToString(byte[] bytes, String encoding)
Converts a byte array to a String according to the some encoding.
static StringdecodeSequence(byte[] seq, int start, int length, char[][] planes)
static voidencodeSequence(int size, byte[] seqs, char cid, ArrayList planes)
static voidencodeStream(InputStream in, ArrayList planes)
static booleanisPdfDocEncoding(String text)
Checks is text only has PdfDocEncoding characters.
static voidloadCmap(String name, byte[][] newline)
Loads a CJK cmap to the cache with the option of associating sequences to the newline.
static char[][]readCmap(String name, byte[][] newline)
static voidreadCmap(String name, ArrayList planes)

Field Detail

cmaps

static final HashMap cmaps

CIDCHAR

protected static final int CIDCHAR

CIDNONE

protected static final int CIDNONE

CIDRANGE

protected static final int CIDRANGE

CRLF_CID_NEWLINE

public static final byte[][] CRLF_CID_NEWLINE
Assumes that '\\n' and '\\r\\n' are the newline sequences. It may not work for all CJK encodings. To be used with loadCmap().

extraEncodings

static final HashMap extraEncodings

pdfEncoding

static final IntHashtable pdfEncoding

pdfEncodingByteToChar

static final char[] pdfEncodingByteToChar

winansi

static final IntHashtable winansi

winansiByteToChar

static final char[] winansiByteToChar

Method Detail

addExtraEncoding

public static void addExtraEncoding(String name, ExtraEncoding enc)
Adds an extra encoding.

Parameters: name the name of the encoding. The encoding recognition is case insensitive enc the conversion class

breakLong

static void breakLong(long n, int size, byte[] seqs)

clearCmap

public static void clearCmap(String name)
Clears the CJK cmaps from the cache. If name is the empty string then all the cache is cleared. Calling this method has no consequences other than the need to reload the cmap if needed.

Parameters: name the name of the cmap to clear or all the cmaps if the empty string

convertCmap

public static String convertCmap(String name, byte[] seq)
Converts a byte array encoded as name to a CID string. This is needed to reach some CJK characters that don't exist in 16 bit Unicode.

The font to use this result must use the encoding "Identity-H" or "Identity-V".

See ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/.

Parameters: name the CJK encoding name seq the byte array to be decoded

Returns: the CID string

convertCmap

public static String convertCmap(String name, byte[] seq, int start, int length)
Converts a byte array encoded as name to a CID string. This is needed to reach some CJK characters that don't exist in 16 bit Unicode.

The font to use this result must use the encoding "Identity-H" or "Identity-V".

See ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/.

Parameters: name the CJK encoding name start the start offset in the data length the number of bytes to convert seq the byte array to be decoded

Returns: the CID string

convertToBytes

public static final byte[] convertToBytes(String text, String encoding)
Converts a String to a byte array according to the font's encoding.

Parameters: encoding the encoding text the String to be converted

Returns: an array of byte representing the conversion according to the font's encoding

convertToString

public static final String convertToString(byte[] bytes, String encoding)
Converts a byte array to a String according to the some encoding.

Parameters: bytes the bytes to convert encoding the encoding

Returns: the converted String

decodeSequence

static String decodeSequence(byte[] seq, int start, int length, char[][] planes)

encodeSequence

static void encodeSequence(int size, byte[] seqs, char cid, ArrayList planes)

encodeStream

static void encodeStream(InputStream in, ArrayList planes)

isPdfDocEncoding

public static boolean isPdfDocEncoding(String text)
Checks is text only has PdfDocEncoding characters.

Parameters: text the String to test

Returns: true if only PdfDocEncoding characters are present

loadCmap

public static void loadCmap(String name, byte[][] newline)
Loads a CJK cmap to the cache with the option of associating sequences to the newline.

Parameters: name the CJK cmap name newline the sequences to be replaced bi a newline in the resulting CID. See CRLF_CID_NEWLINE

readCmap

static char[][] readCmap(String name, byte[][] newline)

readCmap

static void readCmap(String name, ArrayList planes)