Class CompressedRTF

java.lang.Object
org.apache.poi.util.LZWDecompresser
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 Details

    • 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 String LZW_RTF_PRELOAD
      See Also:
  • Constructor Details

    • CompressedRTF

      public CompressedRTF()
  • Method Details

    • decompress

      public void decompress(InputStream src, OutputStream res) throws 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:
      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