PHP調用OpenOffice實現word轉PDF____PHP

來源:互聯網
上載者:User

最近一直在研究PHP word文檔轉PDF,也在網上搜尋了很多類似的資料,大多數都是通過OpenOffice進行轉換的。 核心的代碼如下: 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);  }
$doc_file=dirname(__FILE__)."/11.doc"; //源檔案,DOC或者WPS都可以 $output_file=dirname(__FILE__)."/11.pdf"; //欲轉PDF的檔案名稱 $doc_file = "file:///" . $doc_file; $output_file = "file:///" . $output_file; $document->word2pdf($doc_file,$output_file);
用上述發現代碼一直在報錯

( ! ) Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> [automation bridge] <br/><b>Description:</b> com.sun.star.task.ErrorCodeIOException: ' in I:\phpStudy\WWW\DocPreview\test2.php on line 27
( ! ) com_exception: <b>Source:</b> [automation bridge] <br/><b>Description:</b> com.sun.star.task.ErrorCodeIOException: in I:\phpStudy\WWW\DocPreview\test2.php on line 27

最後發現原來是轉出路徑的問題:通過調試得出上述代碼的轉出路徑 $output_file 是 file:///I:\phpStudy\WWW\DocPreview\sdds.pdf。 然而 storeToURL這個方法裡面需要的路徑是這樣的: file:///I:/phpStudy/WWW/DocPreview/sdds.pdf。 因此只需要將$output_file的"\"替換為“/” $doc_file=dirname(__FILE__)."/11.doc"; //源檔案,DOC或者WPS都可以 $output_file=dirname(__FILE__)."/11.pdf"; //欲轉PDF的檔案名稱 $output_file=str_replace("\\","/",$output_file); $doc_file = "file:///" . $doc_file; $output_file = "file:///" . $output_file; $document->word2pdf($doc_file,$output_file);






相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.