PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法
最近一直在研究PHP word文檔轉(zhuǎn)PDF,也在網(wǎng)上搜索了很多類似的資料,大多數(shù)都是通過(guò)OpenOffice進(jìn)行轉(zhuǎn)換的。
核心的代碼如下:
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"; //欲轉(zhuǎn)PDF的文件名
$doc_file = "file:///" . $doc_file;
$output_file = "file:///" . $output_file;
$document->word2pdf($doc_file,$output_file);
用上述發(fā)現(xiàn)代碼一直在報(bào)錯(cuò)
( ! ) 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
最后發(fā)現(xiàn)原來(lái)是轉(zhuǎn)出路徑的問(wèn)題:通過(guò)調(diào)試得出上述代碼的轉(zhuǎn)出路徑$output_file 是file:///I:\phpStudy\WWW\DocPreview\sdds.pdf。
然而storeToURL這個(gè)方法里面需要的路徑是這樣的:file:///I:/phpStudy/WWW/DocPreview/sdds.pdf。
因此只需要將$output_file的"\"替換為“/”
$doc_file=dirname(__FILE__)."/11.doc"; //源文件,DOC或者WPS都可以
$output_file=dirname(__FILE__)."/11.pdf"; //欲轉(zhuǎn)PDF的文件名
$output_file=str_replace("\\","/",$output_file);
$doc_file = "file:///" . $doc_file;
$output_file = "file:///" . $output_file;
$document->word2pdf($doc_file,$output_file);
以上這篇PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
laravel按天、按小時(shí),查詢數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇laravel按天、按小時(shí),查詢數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
ThinkPHP驗(yàn)證碼和分頁(yè)實(shí)例教程
這篇文章主要介紹了ThinkPHP驗(yàn)證碼和分頁(yè)實(shí)例教程,是ThinkPHP中常見的應(yīng)用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08
PHP使用第三方即時(shí)獲取物流動(dòng)態(tài)實(shí)例詳解
這篇文章主要介紹了PHP使用第三方即時(shí)獲取物流動(dòng)態(tài),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
安裝docker和docker-compose實(shí)例詳解
在本篇文章里小編給大家分享的是關(guān)于安裝docker和docker-compose的具體實(shí)例和代碼,需要的朋友們可以學(xué)習(xí)下。2019-07-07
如何通過(guò)View::first使用Laravel Blade的動(dòng)態(tài)模板詳解
這篇文章主要給大家介紹了關(guān)于如何通過(guò)View::first使用Laravel Blade的動(dòng)態(tài)模板的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。2017-09-09
Thinkphp 框架擴(kuò)展之應(yīng)用模式實(shí)現(xiàn)方法分析
這篇文章主要介紹了Thinkphp 框架擴(kuò)展之應(yīng)用模式,結(jié)合實(shí)例形式分析了Thinkphp 擴(kuò)展應(yīng)用模式的具體原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-04-04
生成隨機(jī)字符串和驗(yàn)證碼的類的PHP實(shí)例
這篇文章主要介紹了生成隨機(jī)字符串和驗(yàn)證碼的類的PHP實(shí)例,有需要的朋友可以參考一下2013-12-12

