2009-09-24 14 views
5

Gibt es eine Methode in Perl, die es mir erlauben würde, das Objekt in einen schreibgeschützten Modus zu bekommen, , um den Dialog zu vermeiden, der erscheint, wenn die Datei von einem anderen Benutzer gesperrt wird?Wie kann ich ein Word-Dokument schreibgeschützt von Perl öffnen?

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

Warum zitieren Sie $ DocFile? – innaM

+0

Wenn Sie nur den Text möchten, können Sie versuchen, "antiword" oder ähnliches darauf auszuführen. Ich bin mir nicht sicher, ob "antiword" jedoch auf Windows aufbaut. Es ist meine bevorzugte Methode für den Umgang mit Word-Dokumenten unter OSX und Linux. – Telemachus

Antwort

10

Das ist, weil Sie es falsch machen. GetObject öffnet nur ein Objekt mit dem Standardverhalten. Sie sollten das Word.Application-Objekt erstellen:

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

dann die ReadOnly mit dem benannten Parameter Documents Sammlung Open Methode verwenden. Wie so:

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

lesen http://msdn.microsoft.com/en-us/library/bb216319.aspx für die Syntax für Documents.Open

+0

Ich werde damit experimentieren. Danke. – EvilTeach

+0

Eine sehr hochwertige Antwort. Danke. – EvilTeach

Verwandte Themen