2009-09-24 102 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