Class DocumentFactoryHelper

java.lang.Object
org.apache.poi.poifs.filesystem.DocumentFactoryHelper

@Internal public final class DocumentFactoryHelper extends Object
A small base class for the various factories, e.g. WorkbookFactory, SlideShowFactory to combine common code here.
  • Method Details

    • getDecryptedStream

      public static InputStream getDecryptedStream(POIFSFileSystem fs, String password) throws IOException
      Wrap the OLE2 data in the POIFSFileSystem into a decrypted stream by using the given password.
      Parameters:
      fs - The OLE2 stream for the document
      password - The password, null if the default password should be used
      Returns:
      A stream for reading the decrypted data
      Throws:
      IOException - If an error occurs while decrypting or if the password does not match
    • getDecryptedStream

      public static InputStream getDecryptedStream(DirectoryNode root, String password) throws IOException
      Wrap the OLE2 data of the DirectoryNode into a decrypted stream by using the given password.
      Parameters:
      root - The OLE2 directory node for the document
      password - The password, null if the default password should be used
      Returns:
      A stream for reading the decrypted data
      Throws:
      IOException - If an error occurs while decrypting or if the password does not match
    • hasOOXMLHeader

      @Deprecated @Removal(version="4.0") public static boolean hasOOXMLHeader(InputStream inp) throws IOException
      Deprecated.
      in 3.17-beta2, use FileMagic.valueOf(InputStream) == FileMagic.OOXML instead
      Checks that the supplied InputStream (which MUST support mark and reset) has a OOXML (zip) header at the start of it.

      If unsure if your InputStream does support mark / reset, use FileMagic.prepareToCheckMagic(InputStream) to wrap it and make sure to always use that, and not the original!

      Parameters:
      inp - An InputStream which supports either mark/reset
      Throws:
      IOException