2009-09-24 10 views
5

Existe-t-il une méthode dans Perl qui me permettrait d'obtenir l'objet en mode lecture seule, afin d'éviter la boîte de dialogue qui apparaît si le fichier est verrouillé par un autre utilisateur?Comment puis-je ouvrir un document Word en lecture seule à partir de Perl?

$document = Win32::OLE->GetObject("$docFile") 
    or die "can't open $docFile"; 
+2

Pourquoi vous citez $ Docfile? – innaM

+0

Si vous ne voulez que le texte, vous pouvez essayer d'exécuter 'antiword' ou autre chose. Je ne suis pas sûr si 'antiword' se construit sur Windows, cependant. C'est ma méthode préférée pour traiter des documents Word sur OSX et Linux. – Telemachus

Répondre

10

C'est parce que vous le faites mal. GetObject ouvre juste un objet avec le comportement par défaut. Vous devez créer l'objet Word.Application:

my $word = Win32::OLE->new('Word.Application'); 

Ensuite, utilisez la méthode de collecte OpenDocuments avec le paramètre nommé ReadOnly. Comme si:

$doc = $word->Documents->Open({ FileName => $document_path, 
           , ReadOnly => 1 
           }); 

Lire http://msdn.microsoft.com/en-us/library/bb216319.aspx pour la syntaxe pour Documents.Open

+0

Je vais expérimenter avec ça. Merci. – EvilTeach

+0

Une réponse de très haute qualité. Merci. – EvilTeach

Questions connexes