系统环境为wamp+win7,安装好了openoffice,已将openoffice service manneger启动和激活权限设置为everyone 全部允许。然后使用以下代码将doc转为pdf
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) { $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:/wamp/www/output/"; $doc_file = "D:/wamp/www/test.doc"; $pdf_file = "test.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 >E:\wamp\www\openoffice.php on line 12
找了很多相关的解决方案,要么是用java写的,要么资料不全。希望得到详细的解决方案,包括详细设置。
小伙看你根骨奇佳,潜力无限,来学PHP伐。