Открыть защищенный паролем файл Word на Java?
Как открыть защищенное паролем Microsoft word (.доктор. ,docx) файл на Java, предполагая, что пароль известен?
3 ответов
Вы можете попробовать его с com4j.
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open2000.aspx
поскольку в методе "open" есть параметр "PasswordDocument", я думаю, что можно открыть файл, защищенный паролем.
надеюсь, это то, что вы искали ;)
Edit: я записал этот макрос в Word.
Documents.Open FileName:="test.doc", ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:= _
"hallo", PasswordTemplate:="", Revert:=False, WritePasswordDocument:= _
"hallo", WritePasswordTemplate:="", Format:=wdOpenFormatAuto
таким образом, метод open в com4j должен выглядеть что-то вроде этого (пароль "Алло"):
_Document document = app.documents().open2000(doc, false, false, false, "hallo", "", false, "hallo", "", WdOpenFormat.wdOpenFormatAuto, false, true);
хорошей отправной точкой будет проект Apache POI, который поддерживает форматы Office 97-2003 и OOXML (2007-2010). Если вы в основном заинтересованы в извлечении текста из этих файлов, вы также должны посмотреть на проект Tika, который имеет хороший код, например OfficeParser.java
вы захотите заменить известный пароль(ы) вокруг строки 220 в методе parse ():
if (!d.verifyPassword(Decryptor.DEFAULT_PASSWORD)) {
throw new TikaException("Unable to process: document is encrypted");
}
-- пароль по умолчанию установлен в основном бесполезный пароль "VelvetSweatshop" (!)
в наших проектах мы используем Aspose для управления документами Office, но мы не имеем дело с защищенными паролем документами, но я полагаю, что эта библиотека обрабатывает такие случаи...