2010-09-09 6 views

Répondre

1

Vous pouvez essayer avec com4j.

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open2000.aspx

Comme il est un paramètre appelé « PasswordDocument » dans le « ouvrir » -method, je pense qu'il est possible d'ouvrir un fichier protégé par mot.

Hope this est ce que vous recherchez;)

Edit: J'enregistré cette macro dans Word.

Documents.Open FileName:="test.doc", ConfirmConversions:= _ 
    False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:= _ 
    "hallo", PasswordTemplate:="", Revert:=False, WritePasswordDocument:= _ 
    "hallo", WritePasswordTemplate:="", Format:=wdOpenFormatAuto 

Ainsi, la méthode ouverte com4j devrait ressembler à quelque chose comme ceci (mot de passe est "Hallo"):

 _Document document = app.documents().open2000(doc, false, false, false, "hallo", "", false, "hallo", "", WdOpenFormat.wdOpenFormatAuto, false, true); 
-1

Dans nos projets, nous utilisons Aspose pour gérer des documents Office, mais nous ne traitons pas avec des documents de mot de passe protégé, mais j'imagine que cette bibliothèque gère de tels cas ...

0

Un bon point de départ serait le projet Apache POI qui soutient Office 97-2003 et OOXML (2007-2010) formats. Si vous êtes principalement intéressé par l'extraction de texte de ces fichiers, vous devriez également regarder le projet Tika qui a un bon code, comme OfficeParser.java

Vous voudrez remplacer dans votre mot de passe connu (s) autour de la ligne 220 dans le parse() méthode: - (!)

if (!d.verifyPassword(Decryptor.DEFAULT_PASSWORD)) { 
throw new TikaException("Unable to process: document is encrypted"); 
} 

le mot de passe par défaut est le mot de passe pour la plupart inutiles « VelvetSweatshop »

+3

VelvetSweatshop est pas seulement une chaîne curieuse, en l'occurrence - est la valeur par défaut Excel mot de passe utilisé quand aucun mot de passe n'est défini, mais le classeur est "protégé" ... – Stobor

Questions connexes