2009-09-24 7 views
5

Czy istnieje jakakolwiek metoda w Perlu, która pozwoliłaby uzyskać obiekt w trybie tylko do odczytu, , aby uniknąć wyświetlania okna dialogowego, jeśli plik jest zablokowany przez innego użytkownika?Jak mogę otworzyć dokument w formacie Word tylko do odczytu z Perla?

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

Dlaczego zacytować $ docFile? – innaM

+0

Jeśli chcesz tylko tekst, możesz spróbować uruchomić 'antiword' lub coś podobnego. Nie jestem jednak pewien, czy 'antiword' jest oparty na Windowsie. Jest to moja preferowana metoda radzenia sobie z dokumentami Worda w systemach OSX i Linux. – Telemachus

Odpowiedz

10

To dlatego, że robisz to źle. GetObject po prostu otwiera obiekt z domyślnym zachowaniem. należy utworzyć obiekt Word.Application:

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

Następnie użyj Documents kolekcja Open metodę z parametru nazwanego ReadOnly. Tak:

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

Czytaj http://msdn.microsoft.com/en-us/library/bb216319.aspx dla składni Documents.Open

+0

Będę eksperymentować z tym. Dziękuję. – EvilTeach

+0

Odpowiedź o bardzo wysokiej jakości. Dziękuję. – EvilTeach

Powiązane problemy