Come posso aprire un file Microsoft word protetto da password (.doc, .docx) in Java, assumendo che la password sia nota?Aprire un file di Word protetto da password in Java?
risposta
si può provare con com4j.
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open2000.aspx
Poiché v'è un parametro chiamato "PasswordDocument" nel -Metodo "aperto", penso che sia possibile aprire un file protetto da password.
Spero che questo è quello che stavi cercando;)
Edit: ho registrato questa macro in Word.
Documents.Open FileName:="test.doc", ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:= _
"hallo", PasswordTemplate:="", Revert:=False, WritePasswordDocument:= _
"hallo", WritePasswordTemplate:="", Format:=wdOpenFormatAuto
Così il metodo aperto di com4j dovrebbe apparire qualcosa di simile (la password è "Ciao"):
_Document document = app.documents().open2000(doc, false, false, false, "hallo", "", false, "hallo", "", WdOpenFormat.wdOpenFormatAuto, false, true);
Nei nostri progetti, usiamo Aspose per gestire i documenti di Office, ma non ci occupiamo con i documenti protetti da password, ma immagino che questa libreria gestisce questi casi ...
Un buon punto di partenza sarebbe il progetto Apache POI che supporta Office 97-2003 e Formati OOXML (2007-2010). Se sei principalmente interessato ad estrarre il testo da quei file, dovresti anche guardare il progetto Tika che ha un buon codice, come OfficeParser.java
Si vorrà sostituire la/e propria/e password/e nota/e attorno alla linea 220 nella metodo parse(): - (!)
if (!d.verifyPassword(Decryptor.DEFAULT_PASSWORD)) {
throw new TikaException("Unable to process: document is encrypted");
}
la password di default è impostata la password per lo più inutile "VelvetSweatshop"
VelvetSweatshop non è solo una stringa curiosa, in questo caso - è l'impostazione predefinita di Excel password utilizzata quando non è impostata alcuna password, ma la cartella di lavoro è "protetta" ... – Stobor