【问题标题】:How can I open a Word document read-only from Perl?如何从 Perl 以只读方式打开 Word 文档?
【发布时间】:2009-09-24 15:26:27
【问题描述】:

Perl 中是否有任何方法可以让我以只读模式获取对象, 以免文件被其他用户锁定时弹出对话框?

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

【问题讨论】:

  • 如果你只想要文本,你可以尝试在上面运行antiword 或类似的东西。但是,我不确定antiword 是否在 Windows 上构建。这是我在 OSX 和 Linux 上处理 Word 文档的首选方法。

标签: perl ms-word ole


【解决方案1】:

那是因为你做错了。 GetObject 只是打开一个具有默认行为的对象。您应该创建 Word.Application 对象:

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

然后使用带有命名参数ReadOnlyDocuments 集合Open 方法。像这样:

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

阅读http://msdn.microsoft.com/en-us/library/bb216319.aspx 了解Documents.Open 的语法

【讨论】:

  • 我会尝试一下。谢谢。
  • 一个非常高质量的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多