My requirement is to just check if the MS Office 2007 document(docx,xlsx or pptx) is password protected or not. I plan to use apache POI for that.
For
doc, xls and ppt documents, I am just trying to create an instance of HWPFDocument, HSSFWorkbook or HSLFSlideShow and checking for the EncryptedDocumentException thrown.
Sample code:
When I try a similar thing for docx, xlsx or pptx document, org.apache.poi.POIXMLException( org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]") is thrown. I believe that this exception is thrown not only when the file is password protected but also when the file is invalid or corrupt. My guess is that the exception is thrown when trying to access the [Content_Types].xml after unzipping the file(package).
Now. my question again: Is there a more elegant way (other than checking for the org.apache.poi.POIXMLException) to validate if a docx, xlsx or pptx document is password protected?