PHP COM класс не найден

Я пытаюсь преобразовать файл DOC в PDF, используя COM-класс, но выкидывает ошибку

Неустранимая ошибка: класс COM не найден

Я попытался раскомментировать необходимые расширения во всех файлах php.ini, установленных на моем компьютере.

[COM_DOT_NET] расширение = php_com_dotnet.dll

Я также изменил путь к каталогу расширений

На окнах:
extension_dir = «c: /wamp64/bin/php/php5.6.25/ext/»

Ниже мой код:
1. Я сохранил Apache Office в папке PHP.
2. Использование WAMP на win7
3. Я также обновлял свой локальный сервер каждый раз, когда обновляю свой файл php.ini

<?php
set_time_limit(0);
function MakePropertyValue($name,$value,$osm){
$oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}
function word2pdf($doc_url, $output_url){

//Invoke the OpenOffice.org service manager
$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");
//Set the application to remain hidden to avoid flashing the document onscreen
$args = array(MakePropertyValue("Hidden",true,$osm));
//Launch the desktop
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
//Load the .doc file, and pass in the "Hidden" property from above
$oWriterDoc = $oDesktop->loadComponentFromURL($doc_url,"_blank", 0, $args);
//Set up the arguments for the PDF output
$export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm));
//print_r($export_args);
//Write out the PDF
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
}

$output_dir = "C:/wamp/www/";
$doc_file = "C:/wamp/www/reportdoc.docx";
$pdf_file = "reportpdf.pdf";

$output_file = $output_dir . $pdf_file;
$doc_file = "file:///" . $doc_file;
$output_file = "file:///" . $output_file;
word2pdf($doc_file,$output_file);
?>

Я пробовал, возможно, каждое решение, но все еще без какой-либо помощи.

0

Решение

Так что это может быть куча вещей:

  1. Убедитесь, что ваш php_com_dotnet.dll находится в extension_dir, определенном php.ini (ежу понятно, но я все еще знаю).

  2. Попробуйте изменить новый COM на
    $ osm = new \ COM («com.sun.star.ServiceManager») или die («Пожалуйста, убедитесь, что OpenOffice.org установлен. \ n»);
    (если вы используете отдельное пространство имен, это может решить проблему).

  3. В вашем php.ini попробуйте установить extension_dir = «ext», если вы используете wamp. (расширение dir в wamp обычно находится под активной версией php и в папке ext)

Сохраните php-файл и перезапустите wamp, и, надеюсь, один из них поможет вам.

0

Другие решения

Других решений пока нет …

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