【问题标题】:PHP COM: Word FileConvertersPHP COM:Word 文件转换器
【发布时间】:2011-03-10 13:28:46
【问题描述】:

我正在尝试使用 PHP COM 使用 Word 将 docx 文件保存为 html。我正在使用带有 apache 2.2.x 和 PHP5 的 Windows 安装。已安装 Office 2007。

使用以下代码列出文件转换器:

$word = new COM('word.application') or die('Unable to instantiate word.');
foreach($word->FileConverters as $converter) {
    var_dump($converter->ClassName);
}

但是,我只得到以下输出:

string(6) "wks632"
string(7) "Recover"
string(11) "WrdPrfctDos"
string(13) "WordPerfect6x"
string(14) "MSWinWrite.wpc"
string(11) "MSWord6.wpc"
string(11) "MSWorksWin6"

This microsoft document 表示应该有一个“HTML”选项可用。不过可能是旧版本的 Office,我不确定!

有人知道发生了什么吗?甚至可以用我当前的设置来做到这一点吗?

【问题讨论】:

    标签: php com ms-word ms-office


    【解决方案1】:

    据我所知,有许多预定义的转换器名称(HTML 就是其中之一),FileConverters 对象提供的列表是附加转换器的列表。

    【讨论】:

      【解决方案2】:

      FileConverters 中列出的对象只是使用 Word 的 RTF 转换器接口的转换器。

      Word 对WdSaveFormat 枚举所描述的各种文件格式具有额外的内置支持。要保存为 HTML,您可以使用以下代码:

      <?php
          $word->Documents->Add();
          $word->ActiveDocument->Range->Text = "Hello World!";
          $word->ActiveDocument->SaveAs('document.html', 8);
          $word->Quit();
      ?>
      

      【讨论】:

      • 调用未定义的方法变体::SaveAs()。 Documents[0]、Documents[1]、Documents(0) 或 Documents(1) 也一样,而不是 ActiveDocument :(
      • @Daniel:你确定安装了 Word 吗?请注意,必须在设置期间选择 VBA 可编程性。
      • @0xA3,是的,Word 已安装...哎呀,当我使用一个小的 vbs 脚本时,我什至可以得到同样的东西。 PHP 一直抱怨 SaveAs 不存在。
      • @0xA3:不,这是一个干净的 Windows XP 安装与 Office 2007。这很奇怪,因为几乎相同的代码翻译成 VBS 工作得很好。大多数 PHP COM 语句也可以正常工作.... 除了 SaveAs。
      • 从我的同事那里得到了一张不同的 Office 2007 CD。现在工作正常,看起来真的是我的安装。接受让我怀疑它可能是一个错误的安装:P
      猜你喜欢
      • 2017-01-01
      • 2018-09-22
      • 2017-12-30
      • 2014-04-16
      • 2011-06-22
      • 2021-03-27
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多