php调用openoffice将office转pdf
系统环境为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写的,要么资料不全。希望得到详细的解决方案,包括详细设置。
美丽温柔欠踹脸
10 years, 4 months ago