この投稿は、nationzhou によって最終編集されました: 2013-05-18 16:42:24 PHP は、office を PDF 形式に変換するために openoffice を使用します。質問してください。
コードは次のとおりです。
function MakePropertyValue($name,$value,$osm){ <br /> $oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue"); <br /> $oStruct->Name = $name; <br /> $oStruct->Value = $value; <br /> return $oStruct; <br />}<br /><br />function word2pdf($doc_url, $output_url){ <br /> $osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.n"); <br /> $args = array(MakePropertyValue("Hidden",true,$osm)); <br /> $oDesktop = $osm->createInstance("com.sun.star.frame.Desktop"); <br /> $oWriterDoc = $oDesktop->loadComponentFromURL<br /> ($doc_url,"_blank", 0, $args); <br /> $export_args = array(MakePropertyValue<br /> ("FilterName","writer_pdf_Export",$osm)); <br /> $oWriterDoc->storeToURL($output_url,$export_args); <br /> $oWriterDoc->close(true); <br />}<br /><br />$output_dir = "D:/APMServ5.2.6/www/htdocs/pdf/"; <br />$doc_file = "D:/APMServ5.2.6/www/htdocs/doc/abc.doc"; <br />$pdf_file = "abc.pdf"; <br />$output_file = $output_dir . $pdf_file; <br />$doc_file = "file:///" . $doc_file; <br />$output_file = "file:///" . $output_file;<br /><br />word2pdf($doc_file,$output_file);
エラー メッセージ:
致命的エラー: メッセージ「COM オブジェクト `com.sun.star.ServiceManager' の作成に失敗しました」を含む例外 'com_Exception' が捕捉されませんでした:サーバー操作が失敗しました ' D: APMServ5.2.6wwwhtdocsphpinfo.php:13 スタック トレース: #0 D:APMServ5.2.6wwwhtdocsphpinfo.php(13): com->com('com.sun.star.Se...' )
システム環境: apache、php5.2.6、php.ini が開いている com、dcom、
オペレーティング システム: win2003、OpenOffice3.2 がインストールされている、openoffice 関連コンポーネントのアクセス許可が設定されている、
はコマンド ライン OpenOffice サービスを使用して開始されました:
cd C:Program FilesOpenOffice.org 3program
C:Program FilesOpenOffice.org 3program>soffice -headless -accept="socket,host=127.0.0.1, port=8100;urp;" -nofirststartwizard
まだアクセスできません。上記のエラーが表示されるまで、ページは約 1 分間実行されます。解決にご協力いただければ幸いです。ありがとうございます。
------解決策----------------------彼はあなたに com.sun.star を作成するように言いました.ServiceManager サービスが失敗しました
これは php とは関係ありません
まずソフトウェアが適切に動作しているかどうか、つまり openoffice で変換できるかどうかを確認する必要があります
成功した場合は、次に、COM サービスが Start
であるかどうかを確認します。