2009-09-24 13 views
5

¿Hay algún método dentro de Perl que me permita obtener el objeto en modo de solo lectura, para evitar el diálogo que aparece si el archivo está bloqueado por otro usuario?¿Cómo puedo abrir un documento de Word de solo lectura desde Perl?

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

¿Por qué usted cita $ docfile? – innaM

+0

Si solo desea el texto, puede intentar ejecutar 'antiword' o similar en él. Sin embargo, no estoy seguro si 'antiword' se basa en Windows. Es mi método preferido para tratar con documentos de Word en OSX y Linux. – Telemachus

Respuesta

10

Eso es porque lo estás haciendo mal. GetObject acaba de abrir un objeto con el comportamiento predeterminado. Debe crear el objeto Word.Application:

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

A continuación, utilice el método de recogida DocumentsOpen con el parámetro llamado ReadOnly. De este modo:

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

Leer http://msdn.microsoft.com/en-us/library/bb216319.aspx para la sintaxis para Documents.Open

+0

Voy a experimentar con eso. Gracias. – EvilTeach

+0

Una respuesta de muy alta calidad. Gracias. – EvilTeach

Cuestiones relacionadas