Heim >Backend-Entwicklung >PHP-Tutorial >php调用openoffice将office转pdf

php调用openoffice将office转pdf

WBOY
WBOYOriginal
2016-06-06 20:44:311463Durchsuche

系统环境为wamp+win7,安装好了openoffice,已将openoffice service manneger启动和激活权限设置为everyone 全部允许。然后使用以下代码将doc转为pdf

<code>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);
</code>

测试报错:

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写的,要么资料不全。希望得到详细的解决方案,包括详细设置。

回复内容:

系统环境为wamp+win7,安装好了openoffice,已将openoffice service manneger启动和激活权限设置为everyone 全部允许。然后使用以下代码将doc转为pdf

<code>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);
</code>

测试报错:

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写的,要么资料不全。希望得到详细的解决方案,包括详细设置。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn