文章彙整

PHP程式實作Word轉PDF

By Astral Web 1 year agoNo Comments
首頁  /  網站設計與開發  /  PHP程式實作Word轉PDF

php-word-convert-to-pdf我們常常在工作中,都會碰到套表的需求,客戶常常都會提供一個word範本,然後要透過程式去填這個範本,最後還要再轉PDF寄送,格式比較不會跑掉,以下就介紹該如何達成這個困難的需求

 

安裝unoconv :

 

  1. 先安裝這個件套件在linux上,以ubuntu為例
    apt-get install unoconv
  2. 接下來下這一個命令就可以讓demo的doc轉pdf了
    /usr/bin/unoconv -f pdf demo.docx

 

套用資料到文件 :

 

  1. 先下載這個大大寫的library,使用這個可以輕易把資料套到word裡面

           https://github.com/iCircle/docxTemplateInPHP

 

  1.  建立一個word.docx的檔案

 

  1. 只要文件內容有放 {VariableName} 這類的字串,表示要用動態的資料,然後檔案叫demo.docx

 

  1.  接下來只要在php這樣做就行了

     

 include_once('./docxtemplate.class.php');

$docx = new DOCXTemplate('./demo.docx');

          $docx->set(VariableName,"把資料寫進word裡面");

          $docx->saveAs('AfterDemo.docx');

 

  1. 然後開啟AfterDemo.docx,就會看到{VariableName} 被取代成把資料寫進word裡面,很簡單吧。

 




 

將Word轉PDF :

 

  1. 首先php是無法直接呼叫unoconv這個命令的,因為安全性的關係,所以我們要在linux上面做一點小小的手腳
  2. 先到這個地方新增權限讓php可以執行unoconv

   

          sudo vi /etc/sudoers.d/www-data

          

           接下來新增這一行命令在該檔案裡面

 

          www-data ALL=NOPASSWD: /usr/bin/unoconv

 

          注意:因為web service的執行user是www-data,如果你們的web service的user有改,這邊的文字也要跟著改唷

 

  1.    接下來PHP程式只要加上這一行就行了,這樣就可以將word用php轉成pdf了

        exec(“sudo /usr/bin/unoconv -f pdf ‘AfterDemo.docx”);

 

 

 

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  網站設計與開發

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。