php调用openoffice将office转pdf

发布于 2022-08-29 18:09:03 字数 1542 浏览 45 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文