2009-09-24 113 views
5

Perl中是否有任何方法可以讓我在只讀模式下獲取對象 以避免在文件被其他用戶鎖定時彈出對話框?如何從Perl中以只讀方式打開Word文檔?

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

爲什麼你們報$ DOCFILE? – innaM 2009-09-24 16:06:47

+0

如果你只想要文本,你可以嘗試在其上運行'antiword'或類似的東西。然而,我不確定'antiword'是否構建在Windows上。這是我在OSX和Linux上處理Word文檔的首選方法。 – Telemachus 2009-09-24 17:24:31

回答

10

那是因爲你做錯了。 GetObject只是用默認行爲打開一個對象。您應該創建Word.Application對象:

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

然後使用Documents收集Open方法與命名參數ReadOnly。像這樣:

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

閱讀http://msdn.microsoft.com/en-us/library/bb216319.aspx的語法Documents.Open

+0

我會試驗一下。 謝謝。 – EvilTeach 2009-09-24 17:33:13

+0

非常高質量的答案。 謝謝。 – EvilTeach 2009-09-25 01:00:16