org.apache.poi.hmef
Class CompressedRTF

java.lang.Object
  extended by org.apache.poi.util.LZWDecompresser
      extended by org.apache.poi.hmef.CompressedRTF

public final class CompressedRTF
extends LZWDecompresser

Within a HMEFMessage, the content is often stored in as RTF, but LZW compressed. This class handles decompressing it for you.


Field Summary
static byte[] COMPRESSED_SIGNATURE
           
static int COMPRESSED_SIGNATURE_INT
           
static java.lang.String LZW_RTF_PRELOAD
           
static byte[] UNCOMPRESSED_SIGNATURE
           
static int UNCOMPRESSED_SIGNATURE_INT
           
 
Constructor Summary
CompressedRTF()
           
 
Method Summary
protected  int adjustDictionaryOffset(int offset)
          We use regular dictionary offsets, so no need to change anything
 void decompress(java.io.InputStream src, java.io.OutputStream res)
          Decompresses the whole of the compressed RTF stream, outputting the resulting RTF bytes.
 int getCompressedSize()
          Returns how big the compressed version was.
 int getDeCompressedSize()
          Returns how big the decompressed version was.
protected  int populateDictionary(byte[] dict)
          Populates the dictionary, and returns where in it to begin writing new codes.
 
Methods inherited from class org.apache.poi.util.LZWDecompresser
decompress, fromByte, fromInt
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPRESSED_SIGNATURE

public static final byte[] COMPRESSED_SIGNATURE

UNCOMPRESSED_SIGNATURE

public static final byte[] UNCOMPRESSED_SIGNATURE

COMPRESSED_SIGNATURE_INT

public static final int COMPRESSED_SIGNATURE_INT

UNCOMPRESSED_SIGNATURE_INT

public static final int UNCOMPRESSED_SIGNATURE_INT

LZW_RTF_PRELOAD

public static final java.lang.String LZW_RTF_PRELOAD
See Also:
Constant Field Values
Constructor Detail

CompressedRTF

public CompressedRTF()
Method Detail

decompress

public void decompress(java.io.InputStream src,
                       java.io.OutputStream res)
                throws java.io.IOException
Decompresses the whole of the compressed RTF stream, outputting the resulting RTF bytes. Note - will decompress any padding at the end of the input, if present, use getDeCompressedSize() if you need to know how much of the result is real. (Padding may be up to 7 bytes).

Overrides:
decompress in class LZWDecompresser
Throws:
java.io.IOException

getCompressedSize

public int getCompressedSize()
Returns how big the compressed version was.


getDeCompressedSize

public int getDeCompressedSize()
Returns how big the decompressed version was.


adjustDictionaryOffset

protected int adjustDictionaryOffset(int offset)
We use regular dictionary offsets, so no need to change anything

Specified by:
adjustDictionaryOffset in class LZWDecompresser

populateDictionary

protected int populateDictionary(byte[] dict)
Description copied from class: LZWDecompresser
Populates the dictionary, and returns where in it to begin writing new codes. Generally, if the dictionary is pre-populated, then new codes should be placed at the end of that block. Equally, if the dictionary is left with all zeros, then usually the new codes can go in at the start.

Specified by:
populateDictionary in class LZWDecompresser


Copyright 2012 The Apache Software Foundation or its licensors, as applicable.