PHP COM-объект для открытия Word 2013, количество страниц не WKG для .docm

Я использую PHP COM-объект для открытия файла Word 2013 и подсчета страниц. Мой код отлично работает для файлов .docx, но не для файлов .docm. Я использую php 5.4 и IIS 7.5 в среде Windows 2008 R2. Любые рекомендации?

// 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);
}

0

Решение

Вы можете попытаться отключить все макросы следующим образом, прежде чем открывать файл, это также отключит запросы безопасности:

 $word->AutomationSecurity = 3;   // disable all macros in the documents being opened
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)
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector