PHP COM对象打开Word 2013,计数页面不是.kgoc的Wkg

时间:2014-11-19 18:49:10

标签: php com ms-word

我正在使用PHP COM对象打开Word 2013文件并计算页数。我的代码适用于.docx文件,但不适用于.docm文件。我在Windows 2008 R2环境中使用php 5.4和IIS 7.5。有什么建议吗?

// Create an instance of the Word application
$word = new COM("word.application");
if ($word) {
    // Open the document
    $word->Documents->Open($file_dir . $filename);

    // Get the page count
    $pagecount = $word->Documents[1]->ComputeStatistics(2);
} 

2 个答案:

答案 0 :(得分:0)

嗯,没有.docm表示文件中存在宏或事件宏吗?

通常,当用户打开.docm文件时,会向用户提供安全提示。由于您在PHP下运行,您可能正在服务下运行,并且隐藏桌面中没有显示提示,或者它根本无法运行安全性。我建议您编写一些VBS代码,尝试在控制台下打开相同的文件,看看结果如何。如果您收到提示或被阻止,希望您会收到更好的错误消息。

var word
set word = CreateObject("Word.Application")

word.documents.open("path to my file")

var pageCount
pageCount = word.Documents(1).ComputeStatistics(s)

答案 1 :(得分:0)

您可以尝试在打开文件之前关闭所有这样的宏,这也会禁用安全提示:

 $word->AutomationSecurity = 3;   // disable all macros in the documents being opened