Class PdfEncodings


  • final class PdfEncodings
    extends java.lang.Object
    Supports fast encodings for winansi and PDFDocEncoding. Supports conversions from CJK encodings to CID. Supports custom encodings.
    • Constructor Summary

      Constructors 
      Constructor Description
      PdfEncodings()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static void addExtraEncoding​(java.lang.String name, ExtraEncoding enc)
      Adds an extra encoding.
      private static void breakLong​(long n, int size, byte[] seqs)  
      private 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.
      private static java.lang.String decodeSequence​(byte[] seq, int start, int length, char[][] planes)  
      private static void encodeSequence​(int size, byte[] seqs, char cid, java.util.ArrayList planes)  
      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.
      private static char[][] readCmap​(java.lang.String name, byte[][] newline)  
      private static void readCmap​(java.lang.String name, java.util.ArrayList planes)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • winansiByteToChar

        private static final char[] winansiByteToChar
      • pdfEncodingByteToChar

        private static final char[] pdfEncodingByteToChar
      • pdfEncoding

        private static final IntHashtable pdfEncoding
      • extraEncodings

        private static java.util.HashMap extraEncodings
      • cmaps

        private static final java.util.HashMap cmaps
    • Constructor Detail

      • PdfEncodings

        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
      • convertCmap

        private 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

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

        private static char[][] readCmap​(java.lang.String name,
                                         byte[][] newline)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readCmap

        private static void readCmap​(java.lang.String name,
                                     java.util.ArrayList planes)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • encodeStream

        private static void encodeStream​(java.io.InputStream in,
                                         java.util.ArrayList planes)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • breakLong

        private static void breakLong​(long n,
                                      int size,
                                      byte[] seqs)
      • encodeSequence

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

        private 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