小編是非專業的PHP職業人員,所以在這之前小編還不知道怎麼在PHP格式下,還可以把Word檔案轉換成PDF檔案呢,所以今天小編就和大家分享一下用PHP把Word格式的檔案轉換成PDF格式的檔案,希望對大家有協助。
php調用com組件配置 以openoffice為例
什麼是com組件?
COM構架下,人們可以開發出各種各樣的功能專一的組件,然後將它們按照需要組合起來,構成複雜的應用系統。COM與語言,平台無關的特性使所有的程式員均可充分發揮自己的才智與專長編寫組件模組。
配置的目的主要是解決無法建立com對象問題,實際要實現功能word ppt xml轉化為pdf
php調用openoffice中com組件配置組要分為三步
1. jdk支援,可能與這兩個軟體都和sun公司有關
下載地址
2. 安裝openoffice
下載地址 許可權的配置
.運行Dcomcnfg.exe
元件服務――電腦――我的電腦 ――DCOM配置--選擇
右擊--屬性--
對圖中兩個紅色標記進行配置
標示---選擇互動式使用者
安全--啟動和啟用許可權和 存取權限進行配置
方式相同
進行編輯
圖示
至此完成任務
下面是操作步驟:
1、 安裝免費的openOffice軟體,請至openoffice.org下載最新版本。
2、 JDK支援,請自行搜尋下載最新版本JDK。
3、 安裝完openOffice後,在開始--運行中輸入Dcomcnfg開啟元件服務。在元件服務—電腦—我的電腦—DCOMP配置中,選擇
在這兩項上分別點擊右鍵屬性,開啟屬性面板如:
選擇安全選項卡,分別在啟動和啟用許可權和存取權限兩項上點自訂,添加Everyone的許可權。
選擇標識選項卡,選擇互動式使用者。
4、安裝完openOffice後,請先開啟一次確認可以正常運行軟體,然後退出後用命令列運行以下命令。
先到安裝目錄下,例如:C:\Program Files\OpenOffice 4\program\
執行命令:
soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
成功後即在後台運行了該軟體。
5、 如果是php5.4.5以前版本,需要在php.ini裡把com.allow_dcom = true開啟,即去掉前面的分號。如果是以後版本,需要在php.ini 裡增加一行擴充extension=php_com_dotnet.dll,然後檢查php的ext目錄中是否存在該dll檔案,如果沒有請自行下載對應版本的dll。然後重啟apache或IIS伺服器。
6、 代碼實現
<?php//PHP也可以實現匯出Word文檔為PDF的功能,不過要藉助於第三方的類庫,今天我們將為大家介紹PHP依靠com.sun.star.ServiceManager來轉換Word為PDF文檔的相關技巧。//PHP處理Word轉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 ("請確認OpenOffice.org庫是否已經安裝.\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:/temp/";$doc_file = "D:/temps/test03.docx";$pdf_file = "test03.pdf";$output_file = $output_dir.$pdf_file;$doc_file = "file:///".$doc_file;$output_file = " word2pdf($doc_file,$output_file);?>
以上就是所有內容了,不管此類方法有沒有完全幫你解決問題,希望都能給你解決此類問題的思維,如果大家有更好的建議也可以在評論區大顯身手哦。