利用openoffice把office轉成pdf,組件無法使用,請各位大俠幫忙。
本帖最後由 nationzhou 於 2013-05-18 16:42:24 編輯
php 利用openoffice把office轉成pdf格式 問題請教
代碼如下:
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){
$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.n");
$args = array(MakePropertyValue("Hidden",true,$osm));
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
$oWriterDoc = $oDesktop->loadComponentFromURL
($doc_url,"_blank", 0, $args);
$export_args = array(MakePropertyValue
("FilterName","writer_pdf_Export",$osm));
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
}
$output_dir = "D:/APMServ5.2.6/www/htdocs/pdf/";
$doc_file = "D:/APMServ5.2.6/www/htdocs/doc/abc.doc";
$pdf_file = "abc.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 D:\APMServ5.2.6\www\htdocs\phpinfo.php:13 Stack trace: #0 D:\APMServ5.2.6\www\htdocs\phpinfo.php(13): com->com('com.sun.star.Se...')
系統內容:apache, php5.2.6, php.ini已開啟com,dcom ,
作業系統:win2003, 已安裝過OpenOffice3.2, 已設定openoffice相關組件的存取權限,
已用命令列啟動OpenOffice服務:
cd C:\Program Files\OpenOffice.org 3\program
C:\Program Files\OpenOffice.org 3\program>soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
仍然不能訪問,頁面大概運行一分鐘才提示以上錯誤,望大俠能幫忙解決,萬分感謝! com組件
分享到:
------解決方案--------------------
他已經告訴你建立 com.sun.star.ServiceManager 服務失敗了
這個與 php 沒有關係
你需要先確認你的軟體是否工作正常,即在 openoffice 中是否能夠轉換
如果能成功,再去檢查 COM+ 服務是否啟動