## com.lowagie.text.pdf
Class PdfEncodings

    java.lang.Object
      com.lowagie.text.pdf.PdfEncodings

    public class PdfEncodings

extends java.lang.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
`private static class` `PdfEncodings.Cp437Conversion`
`private static class` `PdfEncodings.SymbolConversion`
`private static class` `PdfEncodings.SymbolTTConversion`
`private static class` `PdfEncodings.WingdingsConversion`

Field Summary
`protected static int` `CIDCHAR`
`protected static int` `CIDNONE`
`protected static int` `CIDRANGE`
`(package private) static java.util.HashMap` `cmaps`
`static byte[][]` `CRLF_CID_NEWLINE` Assumes that '\\n' and '\\r\\n' are the newline sequences.
`(package private) static java.util.HashMap` `extraEncodings`
`(package private) static IntHashtable` `pdfEncoding`
`(package private) static char[]` `pdfEncodingByteToChar`
`(package private) static IntHashtable` `winansi`
`(package private) static char[]` `winansiByteToChar`

Constructor Summary
`PdfEncodings()`

Method Summary
`static void` `addExtraEncoding(java.lang.String name, ExtraEncoding enc)` Adds an extra encoding.
`(package private) static void` `breakLong(long n, int size, byte[] seqs)`
`static void` `clearCmap(java.lang.String name)` Clears the CJK cmaps from the cache.
`static java.lang.String` `convertCmap(java.lang.String name, byte[] seq)` Converts a `byte` array encoded as `name` to a CID string.
`static java.lang.String` `convertCmap(java.lang.String name, byte[] seq, int start, int length)` Converts a `byte` array encoded as `name` to a CID string.
`static byte[]` `convertToBytes(char char1, java.lang.String encoding)` Converts a `String` to a byte array according to the font's encoding.
`static byte[]` `convertToBytes(java.lang.String text, java.lang.String encoding)` Converts a `String` to a byte array according to the font's encoding.
`static java.lang.String` `convertToString(byte[] bytes, java.lang.String encoding)` Converts a byte array to a `String` according to the some encoding.
`(package private) static java.lang.String` `decodeSequence(byte[] seq, int start, int length, char[][] planes)`
`(package private) static void` `encodeSequence(int size, byte[] seqs, char cid, java.util.ArrayList planes)`
`(package private) static void` `encodeStream(java.io.InputStream in, java.util.ArrayList planes)`
`static boolean` `isPdfDocEncoding(java.lang.String text)` Checks is `text` only has PdfDocEncoding characters.
`static void` `loadCmap(java.lang.String name, byte[][] newline)` Loads a CJK cmap to the cache with the option of associating sequences to the newline.
`(package private) static void` `readCmap(java.lang.String name, java.util.ArrayList planes)`
`(package private) static char[][]` `readCmap(java.lang.String name, byte[][] newline)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CIDNONE

    protected static final int CIDNONE

See Also:
  Constant Field Values

### CIDRANGE

    protected static final int CIDRANGE

See Also:
  Constant Field Values

### CIDCHAR

    protected static final int CIDCHAR

See Also:
  Constant Field Values

### winansiByteToChar

    static final char[] winansiByteToChar

### pdfEncodingByteToChar

    static final char[] pdfEncodingByteToChar

### winansi

    static final IntHashtable winansi

### pdfEncoding

    static final IntHashtable pdfEncoding

### extraEncodings

    static java.util.HashMap extraEncodings

### cmaps

    static final java.util.HashMap cmaps

### 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().

Constructor Detail

### PdfEncodings

    public PdfEncodings()

Method Detail

### convertToBytes

    public static final byte[] convertToBytes(java.lang.String text,
                                              java.lang.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

### convertToBytes

    public static final byte[] convertToBytes(char char1,
                                              java.lang.String encoding)

  Converts a `String` to a byte array according to the font's encoding.

  Parameters:
    `encoding` - the encoding
    `char1` - the `char` to be converted
  Returns:
    an array of `byte` representing the conversion according to the font's encoding

### convertToString

    public static final java.lang.String convertToString(byte[] bytes,
                                                         java.lang.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`

### isPdfDocEncoding

    public static boolean isPdfDocEncoding(java.lang.String text)

  Checks is `text` only has PdfDocEncoding characters.

  Parameters:
    `text` - the `String` to test
  Returns:
    `true` if only PdfDocEncoding characters are present

### clearCmap

    public static void clearCmap(java.lang.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

### loadCmap

    public static void loadCmap(java.lang.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 by a newline in the resulting CID. See `CRLF_CID_NEWLINE`

### convertCmap

    public static java.lang.String convertCmap(java.lang.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 java.lang.String convertCmap(java.lang.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

### decodeSequence

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

### readCmap

    static char[][] readCmap(java.lang.String name,
                             byte[][] newline)
                      throws java.io.IOException

  Throws:
    `java.io.IOException`

### readCmap

    static void readCmap(java.lang.String name,
                         java.util.ArrayList planes)
                  throws java.io.IOException

  Throws:
    `java.io.IOException`

### encodeStream

    static void encodeStream(java.io.InputStream in,
                             java.util.ArrayList planes)
                      throws java.io.IOException

  Throws:
    `java.io.IOException`

### breakLong

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

### encodeSequence

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

### addExtraEncoding

    public static void addExtraEncoding(java.lang.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

Hosted by Hostbasket