2009-09-24 13 views
5

Esiste qualche metodo in Perl che mi consenta di ottenere l'oggetto in una modalità di sola lettura, in modo da evitare la finestra di dialogo che si apre se il file è bloccato da un altro utente?Come posso aprire un documento di Word in sola lettura da Perl?

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

Perché citi $ docfile? – innaM

+0

Se si desidera solo il testo, si potrebbe provare a eseguire 'antiword' o simili su di esso. Non sono sicuro se la build di 'antiword' su Windows, comunque. È il mio metodo preferito per trattare documenti di Word su OSX e Linux. – Telemachus

risposta

10

Questo perché lo stai facendo male. GetObject apre semplicemente un oggetto con il comportamento predefinito. È necessario creare l'oggetto Word.Application:

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

quindi utilizzare il metodo di raccolta DocumentsOpen con il parametro di nome ReadOnly. In questo modo: http://msdn.microsoft.com/en-us/library/bb216319.aspx

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

Leggi per la sintassi per Documents.Open

+0

Lo sperimenterò. Grazie. – EvilTeach

+0

Una risposta di altissima qualità. Grazie. – EvilTeach

Problemi correlati