用php把word格式檔案轉換成pdf檔案

來源:互聯網
上載者:User
小編是非專業的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);?>

以上就是所有內容了,不管此類方法有沒有完全幫你解決問題,希望都能給你解決此類問題的思維,如果大家有更好的建議也可以在評論區大顯身手哦。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.