Heim >Backend-Entwicklung >PHP-Tutorial > php 利用openoffice把office转成pdf格式,该怎么处理

php 利用openoffice把office转成pdf格式,该怎么处理

WBOY
WBOYOriginal
2016-06-13 13:16:44944Durchsuche

php 利用openoffice把office转成pdf格式
如题 从网上找到代码

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->    function word2pdf($doc_url, $output_url)
    {
        //Invoke the OpenOffice.org service manager
        $osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");
        //Set the application to remain hidden to avoid flashing the document onscreen
        $args = array($this->MakePropertyValue("Hidden",true,$osm));
        //Launch the desktop
        $top = $osm->createInstance("com.sun.star.frame.Desktop");
        //Load the .doc file, and pass in the "Hidden" property from above
        $oWriterDoc = $top->loadComponentFromURL($doc_url,"_blank", 0, $args);
        //Set up the arguments for the PDF output
        $export_args = array($this->MakePropertyValue("FilterName","writer_pdf_Export",$osm));
        //Write out the PDF
        $oWriterDoc->storeToURL($output_url,$export_args);
        $oWriterDoc->close(true);
    }

    
    
    public function test1()
    {
        $output_dir = SERVERBASE . 'client/files/proj_workaholic/office/pdf/';
        $doc_file = SERVERBASE . 'client/files/proj_workaholic/office/office/helloWorld.doc';
        $pdf_file = "hellowWorld.pdf";
        $output_file = $output_dir . $pdf_file;
//        $doc_file = "file:///" . $doc_file;
//        $output_file = "file:///" . $output_file;
        $this->word2pdf($doc_file,$output_file);
    
    }
test();


系统:window xp
软件:openoffice3.3
服务器:xampp
php.ini - com.allow_dcom = true

错误:Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `com.sun.star.ServiceManager' in "the project of path"



------解决方案--------------------
需要安装OpenOffice.org
------解决方案--------------------
1、检查一下是否安装过OpenOffice。
2、用命令行启动OpenOffice服务:
cd C:\Program Files\OpenOffice.org 3\program
C:\Program Files\OpenOffice.org 3\program>soffice -headless -accept="socket,host
=127.0.0.1,port=8100;urp;" -nofirststartwizard
然后再试验一下呢.
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