Package org.apache.poi.hmef
Class CompressedRTF
java.lang.Object
org.apache.poi.util.LZWDecompresser
org.apache.poi.hmef.CompressedRTF
Within a
HMEFMessage
, the content is often
stored in as RTF, but LZW compressed. This class
handles decompressing it for you.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected int
adjustDictionaryOffset
(int offset) We use regular dictionary offsets, so no need to change anythingvoid
decompress
(InputStream src, OutputStream res) Decompresses the whole of the compressed RTF stream, outputting the resulting RTF bytes.int
Returns how big the compressed version was.int
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
-
Field Details
-
COMPRESSED_SIGNATURE_INT
public static final int COMPRESSED_SIGNATURE_INT -
UNCOMPRESSED_SIGNATURE_INT
public static final int UNCOMPRESSED_SIGNATURE_INT -
LZW_RTF_PRELOAD
- See Also:
-
-
Constructor Details
-
CompressedRTF
public CompressedRTF()
-
-
Method Details
-
decompress
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, usegetDeCompressedSize()
if you need to know how much of the result is real. (Padding may be up to 7 bytes).- Overrides:
decompress
in classLZWDecompresser
- Throws:
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 classLZWDecompresser
-
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 classLZWDecompresser
-