Док в PDF с PHP + Openoffice - PullRequest
       17

Док в PDF с PHP + Openoffice

2 голосов
/ 11 января 2011

Я пытаюсь следовать руководству по конвертации документа в 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

Я попытался использовать то, что предлагает этот урок: http://puno.ayun.web.id/2009/08/php-ooo-in-microsoft-windows-environment/ Но не повезло.Есть идеи, что я могу сделать?Я запускаю это под wamp, и он будет запущен под wamp в производстве.

Ответы [ 3 ]

0 голосов
/ 16 января 2013

Пожалуйста, установите Open Office в вашем каталоге.Настройка OpenOffice для запуска в качестве службы на этом компьютере.

0 голосов
/ 28 декабря 2017

гораздо проще использовать безголовый libreoffice и класс обёртки php, например https://github.com/ncjoes/office-converter. конечно, вы должны установить libreoffice и полностью контролировать свой веб-сервер.

0 голосов
/ 21 января 2011

Вам необходимо настроить OpenOffice для запуска в качестве службы на этом компьютере. Чтобы просто преобразовать ODT в PDF, вы можете использовать Pyodconverter. Они также объясняют, как настроить локальный сервис OpenOffice: http://www.artofsolving.com/opensource/pyodconverter

Я использую эту технику в написанном мной сценарии, и здесь есть статья: http://codeuniversity.com/scripts/scr1

...