Я пытаюсь следовать руководству по преобразованию документа в pdf с помощью openoffice. У меня есть следующий код:
<?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 $top = $osm->createInstance("com.sun.star.frame.Desktop"); // Load the .doc file, and pass in the "Hidden" property from above $oWriterDoc = $top->loadComponentFromURL($doc_url,"_blank", 0, $args); // Set up the arguments for the PDF output $export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm)); // Write out the PDF $oWriterDoc->storeToURL($output_url,$export_args); $oWriterDoc->close(true); } $output_dir = './'; $doc_file = './test.docx'; $pdf_file = 'DpmR5Reqv1.20.pdf'; $output_file = $output_dir . $pdf_file; $doc_file = 'file:///' . $doc_file; $output_file = 'file:///' . $output_file; word2pdf($doc_file,$output_file); ?>
Я получаю сообщение об ошибке:
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `com.sun.star.ServiceManager' in C:\wamp\www\Projects\doc_to_pdf\index.php on line 11 ( ! ) com_exception: Failed to create COM object `com.sun.star.ServiceManager': Invalid syntax in C:\wamp\www\Projects\doc_to_pdf\index.php on line 11
Ive попытался понять, что предлагает этот учебник: http://puno.ayun.web.id/2009/08/php-ooo-in-microsoft-windows-environment/ Но не повезло. Любая идея, что я могу сделать? Я запускаю это под весом, и он будет бегать под ватер в производстве.
У вас должна быть установка OpenOffice для работы в качестве службы на этом компьютере. Чтобы просто преобразовать odt в pdf, вы можете использовать pyodconverter. Они также объясняют, как настроить локальный сервис OpenOffice: http://www.artofsolving.com/opensource/pyodconverter
Я использую эту технику в сценарии, который я написал, и здесь есть статья: http://codeuniversity.com/scripts/scr1
Установите Open Office в свой каталог. Настройка OpenOffice для работы на этой машине.
гораздо проще использовать безглавую libreoffice и класс обертки php, например https://github.com/ncjoes/office-converter . конечно, вам нужно установить libreoffice, и вы должны иметь полный контроль над своим веб-сервером.